上篇文章中我绕过Eclipse开发环境与交叉工具链。直接在DragonBoard 410c的终端上编写了程序并成功编译与运行,在终端输出!!hello字符,这意味着我们已经能基本控制DragonBoard 410c了。
但是各位应该还是对上一篇文章所做的事情不怎么感冒,毕竟仅仅是输出一个hello world而已,并没有什么新奇的效果。那么我们本文将直接对DragonBoard 410c的硬件进行控制,在Linux系统中调用DragonBoard 410c自带的LED模块并使其进行闪烁。如果你听到这里已经迫不及待了,那就和我进入到下面的课程吧。
基本背景知识
DragonBoard 410c下debian的安装与配置
这一部分大家可以查看上一章的教程配置debian并运行:
Linux系统下对LED模块的简单控制方法
Linux系统中的LED处理在所有驱动控制中是最简单的形式, LED class允许开发者在用户空间对LED进行操作。 所有的LED显示与/sys/class/leds/文件夹下。我们可以在这个文件夹下控制LED的属性。 举例来说,LED的最大亮度取决于文件夹下的max_brightness文件。 该文件可以设置LED的亮度。只不过很多硬件中所带的LED没有亮度控制所以一般该文件都设置为非零值就OK。因此本文中我们就可以在C代码中直接引用该文件夹下的LED文件属性对LED进行直接控制。
在这个类下还包括了很多有意思的特性,比如LED的trigger事件。 一个trigger是led事件中的内核源。 Trigger既可以很简单也可以无比复杂。Trigger可以支持ide-disk、nand-disk以及shapsl-charge等,此处与本文内容无关,只是提及一下,如果打击有兴趣,可以在这个链接进行详细的学习。
DragonBoard 410c的LED控制程序编写
/*
==================================================