蜂鸣器是S3C410开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。本节介绍蜂鸣器的实现原理,并实现一个完整蜂鸣器驱动。PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式。本书介绍Android底层技术和Linux驱动开发,涉及的主要编程语言是C和C++ ...
分类:
其他好文 时间:
2016-07-03 19:05:01
阅读次数:
157
本章的实验将会实现真正意义上的Linux驱动,会实现直接与硬件的交互。需要控制4个LED灯。 7.1LED驱动的实现原理 事实上并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。I/O内存是通过各种接口连接到主机的硬件在主机内存中的映射。 7.2编写LED驱动 1.创建L ...
分类:
移动开发 时间:
2016-07-03 18:55:45
阅读次数:
173
作为开发和学习嵌入式技术的主要硬件设备,开发板是机器重要的。因为即使可以在PC上开发Linux驱动,并重新编译成ARM架构的Linux驱动模块,但最终还是要在开发板上进行测试。有两个原因:因为ARM架构的开发板可 基于X86架构的PC在CPU指令以及二进制格式上都有所不同;而且驱动需要访问的硬件,有 ...
分类:
移动开发 时间:
2016-07-03 18:54:17
阅读次数:
186
PWM驱动的实现方式不同于LED,PWM驱动由多个文件组成。大多数Linux驱动的标准实现方式都是这种。一个复杂的驱动不会把所有代码都放在一个文件中。相关的代码会放在相应的文件中,在编译Linux驱动时将这些文件进行联合编译。当开发一个Linux驱动时,在init、exit等函数中发生错误时,Lin ...
分类:
移动开发 时间:
2016-07-03 18:44:18
阅读次数:
150
通过第十章的学习,了解了在嵌入式Linux驱动开发中的调试技术已经调试工具。 学到的知识: 一、打印内核调试信息:printk printk函数的原型如下: asmlinkage int printk(const char * fmt, ... ) printk文件是一个简单的有4个数字组成的文本文 ...
分类:
其他好文 时间:
2016-07-03 18:43:04
阅读次数:
184
本章是一个具体的例子,来详细的介绍开发和测试Linux驱动程序的完整过程。尤其是测试Linux驱动。在这个统计单词个数的实例中,重点是该算法的实现技术:即Linux驱动,而不是如何统计的。 6.1Linux驱到底是什么 Linux驱动的工作方式和访问方式是Linux的特点之一。Linux系统将每一个 ...
分类:
移动开发 时间:
2016-07-03 18:41:36
阅读次数:
197
HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。HAL的主要目的一个是用来保护"私人财产",另一个是尽量避免应用程序直接访问Linux驱动程序。 传统的Linux系统中Linux驱动一般有两种类型的代码,访问硬件寄存器和业务逻辑代 ...
分类:
移动开发 时间:
2016-07-03 18:41:14
阅读次数:
176
对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试。如设置断点,逐步跟踪代码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和共享库。 1.打印内核调试信息:printk 该函数的用法和printf函 ...
分类:
移动开发 时间:
2016-07-03 18:37:03
阅读次数:
148
第八章介绍了第二个实验:蜂鸣器驱动,使开发板发出声音 将介绍蜂鸣器的实现原理,并实现一个完整的蜂呜器驱动,通过该驱动可以控制蜂鸣器的打开与关闭。 蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣 器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器 ...
分类:
移动开发 时间:
2016-07-03 17:18:16
阅读次数:
146
恢复内容开始 第九章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。 下一个小 ...
分类:
移动开发 时间:
2016-07-03 17:11:39
阅读次数:
170