Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71399
  • 博文数量: 16
  • 博客积分: 1465
  • 博客等级: 上尉
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 09:32
文章分类

全部博文(16)

文章存档

2012年(1)

2011年(1)

2010年(14)

我的朋友

分类: LINUX

2010-07-19 13:31:18

文件: at91_io.20100719.tar.bz2
大小: 1KB
下载: 下载

    停滞了很久,想写点东西了。

    我使用的是自己做的AT91SAM9260板子,上面引出了PC4PC6-PC11IO引脚。于是决定写一个关于这些IO的驱动程序和应用程序,用于测试。

    下面我还像往常一样介绍下我的开发环境:

    PCFedora 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为应用程序名称,6PC引脚号,该驱动只可对PC4PC6-PC11进行操作,H为引脚高,L为引脚低。这是该驱动所要完成的任务。谢谢。

    后面将会有IICeeprom测试,adc测试等。

阅读(2975) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~