linux修改led中颜色,Linux学习三之LED驱动(修改内核)

昨天到今天折腾了两天才把LED的驱动实现了,当终于成功的时候还是很开心的。在此把错误的原因总结了一下,

也供正在学习的童鞋们参考一下,因为有些原因是手册误导的。

第一,在编译镜像前首先要把天嵌配置好的配置单文件复制一下,这就不用我们一个一个去修改了,就是执行cp -f

config_EmbedSky_W35_256MB .config,

(-f是force强制执行的意思,但不知道为什么还是要我再确认一遍,这个没有影响就不深究了。)

第二,移植手册上写的是要修改common-smdk.c文件,但实际上编译的是common-EmbedSky.c文件,打开后发现这个文件已经按照手册上把smdk.c中需要删除的删了,但是没有加上具体控制LED的那几句,只需要添加进去就可以了,其它的都不用改。

第三,在make menuconfig的时候也有误导,手册上说把LED

Support去掉就可以了,但打开后发现这项并没有添加。不对配置单修改将内核镜像下入开发板,发现没有任何变化。后来经过海斌的指点,说是上电后的流水灯是个测试程序,于是就对照标准的配置单慢慢寻找这个程序所对应的选项,根据命名很快就找对了,是在Device

Drivers下的Character devices下的EmbedSky SKY2440/TQ2440 Board GPIO

Test,把星号去掉再下进去后发现流水灯的效果没有了,但是没有预期的两灭两亮的效果,而是所有的灯都亮着,这说明程序没有改对。

第四,于是赶快对照手册看程序有什么细节问题,原来没有把原来的GPF改成GPB,这个是个细节问题,不容易发现,之前还在奇怪,明明查看电路图确认那四个灯的控制管脚就是GPB5-8,但为什么改了之后编译时报警说找不到8对应的函数呢,原来问题是我没有看清楚,所以自然是错的了。在经历了种种失败之后终于看到了想要的效果,真是不容易呀。

这个过程中由于我是用U盘在两个系统中中转的,所以曾多次怀疑是不是直接在虚拟机中使用“复制”“粘贴”这样的快捷键操作,而没有使用命令操作才导致一直不成功,后面的经历告诉我这些完全没有问题。所以以后可以放心使用了。

这些就是这两天学习得心得,下一步要写自己的LED驱动,编译成模块,要比这个复杂,希望不要费太多的时间,争取在开组会前完成。之前还有海斌的经验做指导(表示感谢还有一点小敬佩,跟他比起来我太慢了点,嘻嘻,慢工出细活~~),后面就要多靠自己查资料了,一定要加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值