一.Linux驱动的代码重用有很多的方法,可以采用标准的C程序的方法将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能,include相应的头文件即可,也可以是另外一种动态重用的方式,也是一个Linux驱动可以使用另外一个Linux驱动中的资源。蜂鸣器是 S3C6410 开发板上带 ...
分类:
其他好文 时间:
2016-07-07 18:56:12
阅读次数:
198
首先了解HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。Google为Android加入HAL主要有以下目的:统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。编写一款支持HAL的Linux驱动程序的步骤:1、编写LI ...
分类:
其他好文 时间:
2016-07-07 17:19:17
阅读次数:
127
第八章 这章将介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣 器)。 1.Linux驱动的代码重用:可以采用标准的C程序的方法将要重用的代码放在其他的文件中。如果要使用某些功能,include相应的头文件即可,也可以是另外一种动态重用的方式,也是一个Linux驱动可以使用另外一 ...
分类:
移动开发 时间:
2016-07-07 17:10:41
阅读次数:
143
该章介绍开发板发出声音:蜂鸣器驱动。当开发一个Linux驱动时,有可能会在init、exit等函数中发生错误,这时Linux驱动可能会安装失败,遇到这种情况直接修改Linux驱动相应的内存地址删除Linux驱动即可修复。Linux代码重用中代码 extern int add(int x1,int x ...
分类:
其他好文 时间:
2016-07-07 17:08:48
阅读次数:
131
第十章 对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试,例如,设置断点、逐步跟踪代码、输出调试信息等。 1.Printk函数运行在内核空间,printf函数运行在用户空间。 初始化Linux驱动:Static int _init printk_demo_init(void); ...
分类:
移动开发 时间:
2016-07-07 16:54:58
阅读次数:
192
本章介绍了——HAL(硬件抽象层),建立在linux驱动之上的一套程序库。它并不属于linux内核,而是属于linux内核层之上的应用层。 Google为了满足这些不想开源的linux驱动作者的要求,在android层次结构中的运行库层增加了一个HAL,从而统一硬件的调用接口,解决了GPL版权问题并 ...
分类:
其他好文 时间:
2016-07-07 12:32:42
阅读次数:
107
本章介绍了蜂鸣器的驱动程序,蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。了解了蜂鸣器的实现原理,并实现了一个完整的蜂鸣器驱动。PWM驱动的实现方式不同于LED驱动,由多个文件组成。 Linux驱动的代码重用有很多方式。对于复杂的linux驱动,需要使用多个源 ...
分类:
其他好文 时间:
2016-07-07 12:32:04
阅读次数:
126
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成。这也是大多数 Linux 驱动的标准实现方式. 刚开始是LED驱动的代码重用,Linux 驱动的代码重用有很多种方法。可以采用标准 C程序的方式。将要重用的代 ...
分类:
移动开发 时间:
2016-07-07 09:54:12
阅读次数:
222
对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试。如设置断点,逐步跟踪代码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和共享库。 1.打印内核调试信息:printk 该函数的用法和printf函 ...
分类:
移动开发 时间:
2016-07-07 09:51:35
阅读次数:
194
本章主要讲硬件抽象层:HAL.HAL 是建立在linux 驱动之上的一套程序库,Google为Android加入HAL主要如下的目的。 1.统一硬件的调用接口 2.解决了GPI版权的问题 3.针对一些特殊的要求 在LED的驱动中,我们加入HAL使用程序不需要关心Linux驱动和设备文件的交互方式。编 ...
分类:
移动开发 时间:
2016-07-07 09:46:17
阅读次数:
202