上节在uboot中测试了下点灯的思路,发现没有问题,这节结合之前说的驱动框架,搞一个小一点的led驱动,实现装载驱动的时候点亮所有小灯,卸载驱动的时候熄灭所有小灯。 写了删,删了又写,折腾了好久,我还是决定直接用代码说话把。。。 看码:
写完之后,在bbb串口控制台中,执行insmod test.ko会发现:
这里面第42行本来为这样:
后来调试发现装载驱动的时候失败,后来一步步找原因,发现这里返回了0地址,但led全都亮了,查看了下系统的相关文件,发现驱动可以正常工作,明天朋友结婚了,今天也没啥心思搞这个了,也没细调,感觉应该是3.8内核和2.6内核的区别造成的,以后我会在这里关注下,因为这代码在2.6内核中是没有问题的。 在家里没网,数据线也没带,就没办法拍照传上来了。。。悲剧了。。。 执行卸载驱动命令rmmod test发现小灯全灭了:
这里报出了一个警告,但led确实熄灭了,这个警告是第73行这个函数报出来的,追进去浅看了一下(看的是2.6内核源码),发现没啥问题,这些代码在2.6内核中不会产生警告,看了下proc目录和其它系统相关文件,驱动确确实实完全卸载掉了,这里有可能也是3.8内核与2.6内核差别不同产生的,4.0驱动的书还在啃,既然驱动能正常工作,暂且把这警告先放一下,等啃完宋老大4.0驱动的书再看看具体原因,这节就到这里,好吧。。。
|