本帖最后由 spacexplorer 于 2014-7-6 10:34 编辑
学习LINUX是一个比较漫长的过程,其实就是开始入门的时候会难度大一些,后边就会好多了,再后来,你就会越来越喜欢!我们举办这次活动的目的就是给大家一个集体学习的环境,大家同时遇到问题,同时解决问题。
如果觉得直接学LINUX难度有点大,可以先学习raw-os,这个相对简单,代码量也少,容易理解很多。
开始学LINUX编程的时候,直接用我们提供的开发环境就好了,不建议一来就自己去搭建环境,这会浪费很多时间,也会影响积极性,如 如下有我收集的一些LINUX的书籍,一般嵌入式LINUX编程的话,用QT做UI是非常不错的选择,友善之臂是我们的同行前辈,他们提供的QT开发资料还是很不错的,有兴趣可以看一下:
http://www.kuaipan.cn/file/id_4037793244258336.htm?source=1
关于这个LED点灯的程序的说明:
LINUX程序分内核态和用户态,一般驱动编程工作在内核态,应用编程工作在用户态,LED控制在LINUX下有一个标准接口(当然你完全可以直接操作IO口),就是内核态先做了驱动,并且在用户态生成一个文件类型的接口,应用程序直接以文件方式访问这个接口就可以操作LED的亮灭了,在我们的代码里有一个路径:
“/sys/class/leds/led0/brightness”
其实这在文件系统里相关于一个文件,可用打开文件的方式打开、关闭他,就是windows里的文件一样,意如其名,对应的是第0个LED灯的亮度,我们先通过fopen打开这个文件,然后用fwrite给这个文件写入1值,或者0值,分别代表息灭和点亮。
同时我们代码里也给出了另一种点亮或者息灭的方法:直接通过echo命令把1或者0写入“/sys/class/leds/led0/brightness”,同样能实现LED灯的亮灭。
我们的代码里给出了两种操作方法,希望大家可以灵活应用。
比如,在我们程序里,通常第一种操作文件方法效率更高,但是有些时候,我们不想写程序,想直接通过命令行操作,就可以使用后者,这在开发、测试过程中是很方便的。
P.S.关于LINUX下GPIO的操作可以参考这篇博文: http://blog.csdn.net/sukhoi27smk/article/details/26447765
|