摘要: 1.主要讲了对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 2.打印内核调试信息:printk printk 函数的用法与printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间。也就是说 阅读全文
posted @ 2016-07-07 22:07 bigcrazy 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 1.HAL(Handerware Abstraction Layer,硬件抽象层)是建立在linux程序上的一套程序库,这套程序库并不属于内核,而是属于内核之上的应用层。 2.要在Android中加入HAL的原因:在linux驱动中一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。对于访问硬 阅读全文
posted @ 2016-07-07 21:54 bigcrazy 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打 开和关闭。PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成 阅读全文
posted @ 2016-07-07 21:18 bigcrazy 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 一、LED驱动的实现原理。Linux驱动不是直接向硬件中的内存写数据,而是与本机的I/O内存交互,Linux内核提供了多个与I/O内存交互的函数,每个连接Linux的硬件在I/O内存中都会有映射首地址,开发板上的LED等也有其映射首地址。 二、编写LED驱动,步骤如下: 1.测试开发板,打开电源开关 阅读全文
posted @ 2016-06-05 20:20 bigcrazy 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 一、Linux系统将每个驱动都映射成一个文件。这些文件称为设备文件或驱动文件,都保存在/dev目录中。这使得与Linux驱动进行交互就向与普通文件进行交互一样容易。大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据变成与驱动设备交换数据。 二、编写Linux驱动程序 1.建立L 阅读全文
posted @ 2016-06-05 20:03 bigcrazy 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一、S3c6410一款比较典型的开发板,集成了各种部件。它是由三星公司推出的一款低功耗、高性价比的RISC处理器,它基于ARM11内核,可广泛应用于移动电话和通用处理等领域。串口通信就是通过使用开发板可以用某些方式显示linux驱动程序输出的调试信息。而PC需要与串口设备通信就需要在PC上安装接收和 阅读全文
posted @ 2016-06-05 19:42 bigcrazy 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 1.要用适应于Android的Linux内核。 2.配置Android源代码下载环境 1>创建一个用于存放下载脚本文件(repo)的目录 #mkdir ~/bin #PATH=~/bin:$PATH 2>下载repo脚本文件 #curl https://dl-ssl.google.com/dl/go 阅读全文
posted @ 2016-04-26 11:31 bigcrazy 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 1.Git管理Linux源代码,由Linux之父Linus编写,其拥有最为优化的存储能力和非凡的性能。 2.在Linux下可以直接使用man命令查看指定命令的帮助文档。查询git-checkout命令的帮助文档# man git-checkout,按“q”键退出帮助。以文本形式查看指定的文档可以使用 阅读全文
posted @ 2016-04-26 10:33 bigcrazy 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 1.最好在Linux平台上进行Linux驱动开发,需要用到JDK6或以上版本,Eclipse3.4或以上版本,ADT,CDT(Eclipse中用于开发C/C++程序的插件),Android SDK,Android NDK,交叉编译环境,Linux内核源代码,Android源代码,用于调试开发板的串口 阅读全文
posted @ 2016-04-25 11:20 bigcrazy 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 1.想要在自己的设备上运行Android,必须为自己的设备开发特定软件,这个为特定设备定制Android的过程被称为“移植”。 2.Android的系统构架分为:最底层Linux内核,和其他Linux系统的差异很小;再上一层是C/C++代码库;再上一层是Android SDK API,这一层是用ja 阅读全文
posted @ 2016-04-24 19:47 bigcrazy 阅读(1121) 评论(0) 推荐(0) 编辑