arm开发板上的驱动程序 提问
在ok6410的开发板上想驱动一个led灯,我不知道该怎么做,因为开发板自带的linux源码中貌似已经包含了很多设备的驱动程序,然后我自己想学写linux下的驱动,所以就想像单片机那样去控制一个led!
我自己的疑问有下:
1、如果我只是想驱动arm开发板上的某个led,我可以用不带系统的那种,是不是就像单片机一样
2、如果我想用linux下的led驱动,就是带系统的,想自己写的话,是不是首先要将源码中linux内核的代码提出来,然后加入自己写的某led灯的驱动,最后做成板子识别的文件烧进去
各位大侠帮帮忙啊!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
第二个问题,你看是否有GPIO的直接驱动。然后你包个调用它的库就可以了。没有必要折腾。如果是开发板,通常都有这些资源给你用的。
第二个问题肯定要编写驱动的,首先linux系统要在你的开发板运行起来,然后编写驱动的,这个驱动编译要依赖你开发板上运行的系统的源码,然后动态编译,最终采用动态加载的方式运行,比如insmod led.ko就是把编译好的led驱动插入内核中,rmmod led就是把驱动给卸载掉,这样就不需要每次都编译系统了。如果你要在android系统上继续操作led,这个led驱动是做底层的操作的基础,那你就要在adnroid的如何调用这个驱动再做一层封装了,具体的可以参考网上的代码,总之是一层一层的调用关系,只是处在的层次不一样。
先谢谢啦,第一个问题我已经解决了,真的跟单片机差不多的!
第二个问题还是没有搞透,我先在开发板上烧进linux系统,然后查看了一些它的硬件设备文件,然后我就用了一个leds的测试用例测试了一下,是可以的,能够控制灯的效果。
但是我最终是要用android系统,跟linux还是有点差距的,我也不知道具体应该怎么用,因为中间有个硬件抽象层
1.可以,把程序烧到flash的第0个块即可。重启即可运行,但是bootloader被覆盖,导致不能再启动系统,需要重新烧录bootloader。
2.提出来是什么意思?重编译?不用!linux的驱动是模块化的,编译后用insmod命令动态插入内核,都不用重启即可运行。
第一个问题是肯定的,arm也是单片机啊!
第二个问题应该不需要源码,只需要根据接口规范写驱动吧!这方面我也是门外汉。