|
本帖最后由 shapolang 于 2014-3-29 10:49 编辑
昨天想做一个驱动程序。想偷懒,没看移植手册前面的部分,直接看step23。先是make menuconfig 自己添加的驱动菜单没出来,各种头文件错误,又有
“first_drv: version magic '2.6.30.4 mod_unload modversions ARMv5 ' should be '2.6.30.4-EmbedSky mod_unload ARMv4 '
insmod: can't insert 'first_drv.ko': invalid module format”
折腾了两天。终于实现一个LED驱动。心中真是万马奔腾啊。
下面具体介绍实现过程。后面会上传源码。
(源码是韦东山TQ2440源码:first_drv修改过来的)
环境:内核-TQ提供的2.6.30;编译器:TQ提供的4.3.3
第一步:解压TQ提供的内核文件到Linux的某个目录下。
第二步 :进入上面解压出来的内核目录中,
使用TQ的配置文件,命令:cp config_EmbedSky_W43 .config
(看自己的板子,选择相应配置文件)
第三步:到LED驱动的工程目录下。修改Makefile 的KDIR为第一步中的内核目录
编译模块,命令:make
手动编译测试模块,命令:arm-linux-gcc firstdrvtest.c -o ftest
将 模块文件first_drv.ko 和 测试程序ftest 使用nfs传输到板子上就可以测试了。
如果开发板的LED灯闪烁的话,
要停掉开机自启的led程序,命令:/etc/rc.d/init.d/leds stop
加载模块:insmod first_drv.ko,使用 lsmod可以看到载入的模块。
./ftest on LED灯全亮
./ftest off LED灯全灭
CSDN
http://download.csdn.net/detail/thebirdman/7113699
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|