JZ2440驱动编译,安装和测试

1.编译linux内核

需要的文件:
a.内核文件(例如linux-2.6.22.6.tar.bz2)
b.对应的补丁文件(例如linux-2.6.22.6_jz2440.patch)

$ tar xjf linux-2.6.22.6.tar.bz2//解压内核文件
$ cd linux-2.6.22.6
$ patch -p1 < ../linux-2.6.22.6_jz2440.patch//打补丁
$ mv ../4.3寸LCD_mach-smdk2440.c arch/arm/mach-s3c2440/mach-smdk2440.c // 替换4.3寸源码
$ cp config_ok .config
$ make uImage

完成后要记住内核文件的位置
我这里是/home/stu/JZ2440_QQ_WuLian/linux-3.4.2

编译成功后,在内核的arch/arm/boot目录下即生成uImage文件。
注意:要想“make uImage”成功,必须把编译u-boot时得到的mkimage工具复制到/usr/bin
目录下去。而mkimage工具在u-boot源码下tools目录里。

2.编译驱动

需要的文件:
a.驱动源文件(比如first_drv.c)
b.Makefile
首先修改Makefile

KERN_DIR = /work/system/linux-3.4.22

all:
    make -C $(KERN_DIR) M=`pwd` modules 

clean:
    make -C $(KERN_DIR) M=`pwd` modules clean
    rm -rf modules.order

obj-m   += first_drv.o

把第一行路径KERN_DIR = /work/system/linux-3.4.22改为你内核文件所放的位置
然后make
可以发现生成了first_drv.ko

注意一下:
编译驱动模块的前提是:内核已经顺利编译通过。

3.编译测试文件

需要的文件:
a.测试源文件(比如firstdrvtest.c)

编译

arm-linux-gcc firstdrvtest.c -o firstdrvtest

可以发现生成了可执行文件firstdrvtest

4.开发板上测试

A.把前面生成的驱动文件first_drv.ko和测试文件firstdrvtest放到nfs挂载目录下
2440通过nfs挂载linux文件夹参考2440通过nfs挂载linux文件夹

cp first_drv.ko /home/stu/nfs
cp firstdrvtest /home/stu/nfs

B.加载(注册)驱动模块
a.//创建一个空目录
mkdir -p /lib/modules/3.4.2
必须创建/lib/modules/2.6.30.4这样一个空目录,否则不能卸载ko模块
b.移动驱动模块

cp  first_drv.ko   /lib/modules/3.4.2/
#cd /lib/modules/3.4.2/
#insmod  first_drv.ko//加载
#lsmod//查看
first_drv 1329 0 - Live 0xbf010000 (O)
buttons 2693 0 - Live 0xbf008000 (O)

如果要卸载则用rmmod

#rmmod first_drv
#lsmod
buttons 2693 0 - Live 0xbf008000 (O)

C.执行测试

./firstdrvtest on

可以看到灯亮

./firstdrvtest off

可以看到灯灭

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值