一、Linux驱动的代码重用 1、编译是由多个文件组成的Linux驱动 如果Linux驱动只有1个源代码文件,0bj-m变量可以和源代码文件同名。如果Linux驱动包含多个文件,就需要使用module-y来指定所以的目标文件。 2、Linux驱动模块的依赖 代码重用分为静态和动态两种。 二、强行卸载 ...
分类:
其他好文 时间:
2016-07-03 18:40:10
阅读次数:
136
本章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。 下一个小节讲了Andro ...
分类:
其他好文 时间:
2016-07-03 18:39:28
阅读次数:
103
通过第九章的学习,知道了什么事HAL以及为什么要使用HAL和关于HAL的驱动实例。 学到的知识: 一、为什么要在Android中加入HAL 统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。 二、为LED驱动增加HAL 1.编写一款支持HAL的Linux驱动程序的步骤 第1步:编写Lin ...
分类:
其他好文 时间:
2016-07-03 18:39:00
阅读次数:
125
调试方法:设置断点、逐步跟踪代码、输出调试信息。 打印讷河调试信息:printk。Printk函数运行在内核空间,printk函数运行在用户空间。Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息。 Asmlinkage int printk(const char *fmt, ...
分类:
系统相关 时间:
2016-07-03 18:37:53
阅读次数:
180
对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试。如设置断点,逐步跟踪代码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和共享库。 1.打印内核调试信息:printk 该函数的用法和printf函 ...
分类:
移动开发 时间:
2016-07-03 18:37:03
阅读次数:
148
第八章 蜂鸣器开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。下来将介绍蜂鸣器的使用原理,并实现蜂鸣器的驱动。pwm驱动的使用不同于LED驱动的使用,其由多个文件组成,这是大多数linux驱动实现的标准方式。 编译pwm驱动,有多个文件组成的驱动。虽然俩个驱动实现的功能 ...
分类:
移动开发 时间:
2016-07-03 17:31:00
阅读次数:
204
蜂鸣器是s3c6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。 在前面的章节编写了两个完整的linux驱动:word_count驱动和led驱动,两个有一共同点就是都有一个源代码文件组成。 代码重用分为静态和动态两种。即将需要重要的代码使用者放在一起进行编译,最 ...
分类:
其他好文 时间:
2016-07-03 17:29:03
阅读次数:
118
第九章 硬件抽象层:HAL HAL是建立在Linux驱动之上的一套程序库。是属于Linux内核之上的应用层。 第一部分讲为什么要在Android中加入HAL,传统的Linux系统中Linux驱动一般有两种:访问硬件寄存器的代码和业务逻辑代码。而HAL是位于Android的系统运行库层,采用Andro ...
分类:
其他好文 时间:
2016-07-03 17:27:34
阅读次数:
138
HAL:硬件抽象层 HAL ( Hardware Abstraction Layer,硬件抽象腔,是建立在Linux驱动之上的一套翻字库。这套程序 j率并不属于 Linux 内核, 而是属于 Linux 内核层之上的应用层。 在传统的 Linux.系统中Linux驱动一般有两种类型的代码:访问硬件寄 ...
分类:
其他好文 时间:
2016-07-03 17:23:06
阅读次数:
133
恢复内容开始 第九章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。 下一个小 ...
分类:
移动开发 时间:
2016-07-03 17:11:39
阅读次数:
170