摘要: 打印内核的调试信息printk: printk与printf区别: printk 函数该函数的用法与printf函数类似,具不过printk函数运行内核空间,printk函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用prink函数输出调试信息。 其次应该防止print 阅读全文
posted @ 2016-07-07 17:43 路旁小石头 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 为什么要在Android中加入HAL 1.统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口。 2.解决了GPL版权问题。由于Linux内核基于GPL协议,而Android基于Apache Licence 2.0协议。因此Google玩了个“穿越” 阅读全文
posted @ 2016-07-07 17:42 路旁小石头 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 蜂鸣器是 S3C6410 开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声。PWM驱动的实现方式不同于 LED 驱动, PWM 驱动将由多个文件组成。这也是大多数 Linux 驱动的标准实现方式. 也就是说-个复杂的驱动不太可能将所有的代码都放在一个文件中。 本节讲介绍 阅读全文
posted @ 2016-07-07 17:41 路旁小石头 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一:首先创建led驱动的设备文件 1.使用cdev_init函数初始化cdev 2.指定设备号 3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中 4.使用class_create宏创建struct_class 5.使用device_create函数创建设备文件 二:卸载LED驱动的 阅读全文
posted @ 2016-06-05 14:14 路旁小石头 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 编写Linux驱动程序步骤如下: 一、建立Linux驱动框架(装载、卸载Linux驱动) Linux内核在使用驱动时首先要装载驱动,在装载过程中进行一些初始化动作(建立设备文件、分配内存等),在驱动程序中需提供相应函数来处理驱动初始化工作,该函数须使用module_init宏指定;Linux系统在退 阅读全文
posted @ 2016-06-05 14:13 路旁小石头 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 本章主要学习关于开发板的测试环境,由于我们所开发的Linux驱动,不管使用何种方法编译后,都需要在开发板上进行测试,这是因为在ARM架构的开发板可以在X86架构的PC在CPU指令及二进制格式上有所不同 ,而且在Linux所需要的硬件在PC上很难进行模拟,因此要在开发板上进行调试和测试。 开发板的型号 阅读全文
posted @ 2016-06-05 14:12 路旁小石头 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 涉及到源代码,及上一章所学的git下载的两套源代码,一套是Android源代码,全部下载将近4GB大小,其含金量可想而知。另一套是Android核心部分的linux内核源代码,解压之后几百MB。 首先我们学习下载、编译、和测试Android源代码。 1.配置Android源代码下载环境 (1)创建一 阅读全文
posted @ 2016-04-28 11:55 路旁小石头 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 搭建Android底层开发的环境,主要包括Android应用程序开发环境、Android NDK 开发环境和交叉编译环境的搭建。开发,测试,和调试linux驱动、HAL程序需要很多工具,其中包括: JDK6或者以上版本、Eclipse3.4或者以上版本、ADT、CDT、Android NDK、交叉编 阅读全文
posted @ 2016-04-28 11:54 路旁小石头 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 学习的Git—由linux之父Linus编写,是进行源代码管理的一种软件。在学习Android及linux 内核,驱动开发的过程中会涉及大量的源代码,而这些代码都是由Git 管理的,因此,在学习Android移植与linux驱动开发之前了解Git的理论和基本使用方法。安装Git 以及查看Git 文档 阅读全文
posted @ 2016-04-28 11:54 路旁小石头 阅读(86) 评论(0) 推荐(0) 编辑
摘要: Android系统架构:嵌入式操作系统有4层1.Linux内核层:Android操作系统是基于Linux内核的,少有些差异与其他Linux系统,如Ubuntu。Linux驱动程序以及内存管理、进程管理、电源管理等程序共同组成Linux内核。内核版本为Linux2.6,不同版本的Android使用的L 阅读全文
posted @ 2016-04-28 11:53 路旁小石头 阅读(156) 评论(0) 推荐(0) 编辑