NRF24L01 Linux驱动编译遇到的问题
后来在网上找了一下原来是linux内核版本的问题,老版本如2.6.29和2.6.32对GPIO的定义不通,如S3C2410_GPF3在2.6.32中的定义为S3C2410_GPF(3); 如果想设置S3C2410_GPF(3)为输出,可以这样使用:s3c2410_gpio_cfgpin(S3C2410_GPF(3),S3C2410_GPIO_OUTPUT);其中S3C2410_GPIO_OUTPUT与以前的版本也略有差别(老版本中为:S3C2410_GPIO_OUTP),这些是需要注意的地方,另外#include <linux/config.h>等头文件好像是不需要的,还有如#include <asm/hardware.h>路径就需要修改为include <mach/hardware.h>,这是根据自己设置的编译环境而定。还有需要注意的就是驱动程序编译版本的问题,如果是在linux2.6.29环境下编译的驱动程序下载到2.6.32的开发板之上就会出现问题。查看开发板运行的linux内核版本的命令为: cat /proc/version;如下显示开发板linux version为2.6.32.2.
[root@FriendlyARM /]# cat /proc/version
Linux version 2.6.32.2-FriendlyARM (root@tom) (gcc version 4.3.2 (Sourcery G++ L
ite 2008q3-72) ) #1 Fri Jan 8 12:53:23 CST 2010