摘要: 对于复杂的Linux驱动及HAL等程序库,需要使用各种方法进行对其调试。打印内核调试信息printk,该函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。防止printk函数Linux驱动性能,虽然使用printk函数可以很方便的将消息写入日志文件 阅读全文
posted @ 2016-07-08 11:58 有一点点帅 阅读(144) 评论(0) 推荐(0) 编辑
摘要: HAL ( Hardware Abstraction Layer,硬件抽象腔,是建立在 Linux 驱动之上的一套翻字库。这套程序不属于Linux内核,而是属于Linux内核层之上的应用层。Google为Android增加HAL的主要目的除了尽量避免应用程序直接访问Linux驱动之外,还有一个重要原 阅读全文
posted @ 2016-07-08 11:38 有一点点帅 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 蜂鸣器是S3C410开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。本节介绍蜂鸣器的实现原理,并实现一个完整蜂鸣器驱动。PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式。本书介绍Android底层技术和Linux驱动开发,涉及的主要编程语言是C和C++ 阅读全文
posted @ 2016-07-03 18:04 有一点点帅 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 第一个Linux驱动程序:统计单词个数 Linux驱动到底是个什么东西. 对于没接触过驱动开发的程序员可能感觉Linux驱动很神秘,其实,这完全是误解。Linux系统将每一个驱动都映射成一个文件,称之为设备文件或驱动文件,保存在/dev中。这样就使得与Linux驱动交换数据相当于与设备文件交换数据。 阅读全文
posted @ 2016-06-07 22:20 有一点点帅 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 控制发光二极管: 对于Linux驱动来说,需要直接与硬件交互,本章会完成一个真正意义的Linux驱动,用来控制开发板上的4个LED小灯,称为LED驱动,也就是说通过想Linux驱动发送数据可以控制LED小灯的开光。 LED驱动: 1.创建LED驱动的设备文件: 1.使用cdev_init函数初始化c 阅读全文
posted @ 2016-06-07 22:20 有一点点帅 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 开发板是开发和学习嵌入式技术的主要硬件设备,尽管可以在PC上开发Linux驱动,然后重新编译成ARM架构的Linux驱动模块。但最终都是要在开发板上测试的。主要是因为ARM架构的开发板基于X86架构的PC在CPU指令以及二进制格式上都有所不同。 S3C6410开发板简介: 它是由三星公司推出的一款低 阅读全文
posted @ 2016-06-07 22:19 有一点点帅 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 本章是介绍源代码的下载和编译。Android的源代码包含了很多东西,如内嵌在Android系统中的应用程序的源代码,AndroidSDK带的各种工具的源代码,AndroidNDK源代码以及HAL源代码。配置Android源代码下载环境:第一步,创建一个用于存放下载脚本文件(repo)的目录,第二步, 阅读全文
posted @ 2016-05-03 18:01 有一点点帅 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 本章主要介绍Git的使用。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们 阅读全文
posted @ 2016-05-03 18:00 有一点点帅 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 本章主要介绍搭建Android底层开发环境。主要包括Android的应用程序开发环境,AndroidNDK开发环境和交叉编译环境的搭建。除此之外,还需要一些辅助工具测试Linux驱动及调试开发板。由于Android基于Linux内核,所以用Linux作为开发Linux驱动的平台最好,这样可以更容易的 阅读全文
posted @ 2016-05-03 17:59 有一点点帅 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 本章主要介绍Android系统移植与驱动开发。Android被称为当前智能手机系统的老大,市场占有率遥遥领先于iOS。Android是基于Linux内核的,主要包括Linux的驱动程序以及内存管理,进程管理,电源管理等程序。Android使用的是Linux2.6作为其内核。Android移植可分为两 阅读全文
posted @ 2016-05-03 17:58 有一点点帅 阅读(136) 评论(0) 推荐(0) 编辑