第8章:让开发板发出声音:蜂鸣器 一、Linux驱动的代码重用 Linux 驱动的代码重用有很多种方法。可以采用标准 C 程序的方式。将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能, include 相应的头文件即可(这种方式称为静态重用)。也可以使用另外一种动态重用的方式,也 ...
分类:
其他好文 时间:
2016-07-07 00:46:55
阅读次数:
225
第九章: 只要讲的是硬件抽象层HAL,HAL是建立在Linux驱动上的一套程序库。HAL不是Linux内核的一部分而是位于Android的系统运行库层。首先讲的是要加入HAL的好处。包括:统一硬件的调用借口、解决GPL版权问题、针对一些特殊的要求。HAL架构的基本原理是在Android系统中使用程序 ...
分类:
移动开发 时间:
2016-07-06 23:27:32
阅读次数:
301
第8章: 本章主要讲了蜂鸣器的实现原理,实现完整的蜂鸣器驱动。主要用到的是pwm驱动,pwm由多个文件组成。 首要介绍的是Linux驱动代码的重用。编译是由多个文件组成的Linux驱动。两个完整的linux驱动是word_count和led驱动,都是由一个源代码文件组成(.c)。但对于复杂的linu ...
分类:
移动开发 时间:
2016-07-06 23:14:51
阅读次数:
243
一、为什么要在Android中加入HAL 统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。 二、为LED驱动增加HAL 1.编写一款支持HAL的Linux驱动程序的步骤 第1步:编写Linux驱动 第2步:编写HAL Library 第3步:编写Service Library 2.精简 ...
分类:
其他好文 时间:
2016-07-06 21:46:26
阅读次数:
142
一、Linux驱动的代码重用 1、编译是由多个文件组成的Linux驱动 如果Linux驱动只有1个源代码文件,0bj-m变量可以和源代码文件同名。如果Linux驱动包含多个文件,就需要使用module-y来指定所以的目标文件。 2、Linux驱动模块的依赖 代码重用分为静态和动态两种。 二、强行卸载 ...
分类:
其他好文 时间:
2016-07-06 21:43:08
阅读次数:
129
心得体会:本章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。下一个小节讲了A ...
分类:
其他好文 时间:
2016-07-06 14:43:09
阅读次数:
175
心得体会:本章主要讲嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。执行完相关的命令后,会要求选择 ...
分类:
其他好文 时间:
2016-07-06 14:39:52
阅读次数:
135
打印内核调试信息:printk: 该函数的用法与printf函数类似,不过printk函数运行在内核空间,printf函数运自行在用户空间。也就是说,像Linux驱动这样Linux内核程序只能使用printk函数输出也试信息。printk 函数在printk.c文件中实现。 防止printk函数降低 ...
分类:
其他好文 时间:
2016-07-05 20:31:16
阅读次数:
146
代码重用分为静态和动态两种。 模块依赖,也称为导出符号。如果只能用一句话解释如何利用导出符号实现代码共卒,这句话就是“在一个驱动模块里使用另一个驱动模块里的被导出的符号(常章、变量、函数等)”。 如果编写的Linux驱动程序在逻辑上是正确的,那么可以正常装载和卸载,但在某些情况下,可能某些程序会出现 ...
分类:
其他好文 时间:
2016-07-05 20:28:51
阅读次数:
194
HAL ( Hardware Abstraction Layer,硬件抽象层)是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。 在android中加入HAL的目的: 1.统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL ...
分类:
其他好文 时间:
2016-07-05 20:25:26
阅读次数:
181