摘要:
对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用pr 阅读全文
摘要:
对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用pr 阅读全文
摘要:
HAL硬件抽象层是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层上的应用层。在传统的 Linux系统中Linux驱动一般有两种类型的代码。Google为Android加入HAL主要有以下目的:统一硬件的调用接口。由于HAL有标准的 调用接口,所以可以 阅读全文
摘要:
蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣 器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打 开和关闭。PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组 阅读全文
摘要:
对于大多数Linux驱动来说,需要直接与硬件交互,本章主要介绍用Linux驱动来控制二极管的明暗,即通过Linux驱动发送数据控制开发板上LED灯的开关。 第一节介绍了LED驱动的实现原理。Linux驱动不是直接向硬件中的内存写数据,而是与本机的I/O内存交互,Linux内核提供了多个与I/O内存交 阅读全文
摘要:
Linux驱动的工作和访问方式是Linux的亮点之一,Linux系 统将每一个驱动都映射成一个文件,这些文件称为设备文件或驱动文件,都保存在/dev目录中。这种设计理念使得与Linux驱动进行交互就像与普通文件进 行交互一样容易。Linux驱动交换数据就就是设备文件交换数据。在进行设备文件交互时,必 阅读全文
摘要:
通过学习Android深度探索(卷1)HAL与驱动开发的第五章搭建S3C6410开发板的测试环境,我掌握了搭建S3C6410开发板的测试环境的方法 1安装串口调试工具:minicom 以Ubuntu Linux为例,需要按照如下步骤安装、配置和调试minicom: 第一步:检测当前系统是否支持USB 阅读全文
摘要:
本章主要学的是下载、编译、和测试Android源代码。其次就是学到了下载和编译Linux内核源代码。 首先是编译Android源代码,由于Android源代码中的每一个工程目录都有Android.mk文件,所以在编译整个Android源代码时会递归调用每一个工程目录中的Android.mk文件来编译 阅读全文
摘要:
通过对本章的学习,主要学到的是如何安装Git以及源代码的提取与获取。 在使用Git之前首先应该安装Git。很多Linux系统已经带了Git。如果Linux系统没有安装Git,可使用下面的方法来安装Git的最新版本。 Ubuntu Linux10.10(maverick)或更新的版本,可以使用下面的命 阅读全文
摘要:
在这章的学习里,我最主要的收获是如何搭建Android应用程序,安装Android NDK开发环境。 安装Android SDK 配置Android应用程序开发环境的第一步就是下载并安装Android SDK。在如下页面可以下载Windows、Mac OS X和Linux 平台的AndroidSDK 阅读全文
摘要:
通过本门课程第一章的学习,讲的是Android系统移植与驱动开发概述。 android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。 1.应用程序: Android会同一系列核心应用 阅读全文
|