spi的调试方式

最近在调试spi,  有个简单一点的调试方式.

1.在kernel的driver里面调spi模块(read 和 write)

2.在上层调用spi (调用read 和 write)


首先在linux-3.4目录下的makefile更改CROSS_COMPILE    (out/ .../external-toolchain/bin/arm-linux-gnueabi-)

在linux-3.4/drivers/路径下的spi模块里面makefile 对应更改  KERN_DIR = ../../


这样就可以保证spi模块编译生成ko文件.动态加载/卸载

在spi模块中有生成节点

init()

    major = register_chrdev(0, "spi", &spi_fops);
    spi_class = class_create(THIS_MODULE, "spi");
    spi_dev = device_create(spi_class, NULL, MKDEV(major, 0), NULL, "spi");


生成的节点为/dev/spi


在android端 android/external/

做一个文件调用此节点

main()

fd = open("/dev/pax_spi_slave", O_RDWR);

read(fd,read_buffer,1);

write(fd,write_buffer,sizeof(write_buffer));


此文件对于一个android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE     := spi_test
LOCAL_SRC_FILES    := spi_test.c

LOCAL_LDFLAGS    += -L$(LOCAL_PATH)
LOCAL_LDLIBS    := -llog

include $(BUILD_EXECUTABLE)


在此文件路径下执行mm

生成的东西就在out/target/product/.../obj/EXECUTEABLES/spi_intermediates/LICKED/spi_test

此文件adb push进系统,即可运行,调用kernel里面的模块 以及init /read / write等函数

很方便的.



你可能感兴趣的:(spi的调试方式)