linux系统下直接访问硬件.关于驱动程序的编写参考小白博客相应文章:
led_device.c文件:
硬件平台:mini2440 (64M FLASH)
软件平台: Fedora9
linux内核: 友善提供的linux-2.6.32.2-mini2440-2010-921.tar.gz
1.解压mini2440光盘中的linux-2.6.32.2-mini2440-2010-921.tar.gz到/opt/FriendlyARM/mini2440/.
2.由于此内核源代码顶层目录中的Makefile中的ARCH=arm,CROSS_COMPILE=arm-linux-已被修改,所以在此不用重复此步骤.
3.编写led_device.c文件,具体见附件.
4.将编写好的led_device.c文件放到内核源代码的/drivers/char/目录下,然后修改/drivers/char/Makefile文件,添加:
obj-m += led_device.o
6.编译内核模块.make M=./drivers/char/ modules
编译内核模块前最好先编译一下内核, make zImage.
编译结束后,将会在源代码目录下的/drivers/char/下生成我们所需要的led_device.ko文件,将其通过串口下载到mini2440的开发板上.(具体有关串口下载请查看mini2440的用户手册,这里千万不要用ftp传送,经试验用ftp传递的文件大小会发生变化).
7.串口终端下操作开发板,将led_device.ko文件转移到/lib/modules/2.6.32.2-FriendlyARM/目录下.
8.由于开发板上的LED灯相应的模块在启动系统时已经自动加载,故加载led_deivce.ko模块之前应该先停止它.
#etc/rc.d/init.d/leds stop
9.加载模块.insmod hello.ko,出现以下问题
发现,没有进行
*)创建.config文件,这里复制config_mini2440_n35(我的开发板的屏)并重命名为.config
这一步.
操作此步骤,然后重新4-9步骤.
发现以上问题解决.
10.卸载模块.rmmod led_device(注意这里不是led_device.ko)
阅读(1353) | 评论(0) | 转发(1) |