全部博文(16)
分类: LINUX
2010-07-19 13:31:18
文件:
at91_io.20100719.tar.bz2
大小:
1KB
下载:
下载
停滞了很久,想写点东西了。
我使用的是自己做的AT91SAM9260板子,上面引出了PC4、PC6-PC11的IO引脚。于是决定写一个关于这些IO的驱动程序和应用程序,用于测试。
下面我还像往常一样介绍下我的开发环境:
PC:Fedora 11
TARGET:AT91SAM9260
GCC:ARM-NONE-LINUX-GNUEABI-GCC
首先,在内核中的drivers/char下建立at91_dev_io.c,文件内容就是我附近中同名文件的内容。然后修改当前目录下的Makefile文件中的内容,即添加如下一行。
Obj-m +=at91_dev_io.o #ADD BY LPC
这一句的意思就是设备以模块方式加载。
其次,就是编译模块。退回到内核根目录下,执行make modules,将会生成at91_dev_io.ko,这就是2.6内核的模块加载文件。
然后,编写应用测试程序。在自己常用的目录下建立该测试程序目录,创建at91_io.c文件,文件内容如附件中同名文件内容。创建编译规则,即Makefile,内容同附件中同名文件内容。在该目录下执行make命令,将会产生在ARM上执行的应用程序at91_io文件。
最后,由于我的文件系统是NFS方式的,因此只要将这些文件按照我说的如下规则放入NFS文件系统中即可。在NFS文件系统中的lib目录下建立modules目录,将刚才生成的.ko文件放入。进入到NFS文件系统的/usr/bin目录,将刚才生成的at91_io文件放入到该目录下。还有就是创建设备节点,进入到NFS文件系统的/dev目录下,执行mknod at91gpio c 222 0即可创建该设备节点。
到此,我们的所有任务即完成。下面进行测试。
启动开发板,文件系统挂载成功后,进入到开发板系统的/lib/modules目录下,执行insmod,即加载模块,终端会提示加载模块的状态,rmmod即为卸载模块。在模块加载成功的前提下,在任意路径下执行at91_io 6 H命令,即会将PC6引脚的电平置高,执行at91_io 6 L命令,即可清零。其中命令解释为at91_io为应用程序名称,6为PC引脚号,该驱动只可对PC4、PC6-PC11进行操作,H为引脚高,L为引脚低。这是该驱动所要完成的任务。谢谢。
后面将会有IIC的eeprom测试,adc测试等。