ARM怎么实现对LED灯或其他硬件控制?

你好!请问我在ARM开发板下裸机来控制一个LED实现很容易,但我想问当在ARM上跑Linux系统时,如何在操作系统中编写程序来控制底层硬件(如LED等)。

其实跟裸机是差不多的。也是要先设置LED的控制寄存器,上拉寄存器。然后通过控制它的状态寄存器来使灯亮灭。跟裸机操作是一样的。只是在系统里面,分成了驱动和应用。驱动程序就是为了能让LED能够正常工作。而应用程序就是控制LED怎么亮发。比如循环亮啊。全亮,全灭之类的。这只是概念。真正操作的话,还要看你用的是什么芯片,什么linux核。反正方法就是先写好驱动然后添加到你的内核里面,在通过应用去控制灯的状态。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-02
跟祼机控制是一样的,也是通过往寄存器里写值,但在linux下不能用实际的物理地址,要映射。还有点不一样的地方,在linux下操作硬件就和操作文件一样,在应用程序中打开一个文件如:open("/dev/led");就会产生一个系统调用,调用到驱动程序里的open函数,执行open函数里的初始化硬件的操作,在read或write执行点灯操作。
这其实就是写驱动程序了。追问

你好!如果要学习的话,主要是学习Linux那块的知识。谢谢

追答

先arm搞祼机,再了解linux, 再学习arm+linux

本回答被提问者采纳