Android深度探索HAL与驱动开发-——第10章

本章主要讲Linux调试技术。打印内核调试信息:printk,printk函数运行在内核空间,linux内核程序只能使用printk函数输出调试信息。printk文件由一个4个数字组成文本文件。6:将消息输出到控制台的级别。4:默认的消息日志级别。1:控制台日志级别可被设置的最小值。7:控制台日志级别的默认值。

在不想使用prink输出消息时,还需要了解可变参数的宏和do while。通过虚拟文件系统进行数据交互:在 Linux文件系统中/proc被用来作为内核空间与用户空间进行数据交互的工具。/proc文件系统和/dev文件系统一样,需要设置访问文件的动作处理函数。而/proc文件系统主要通过  proc_dir_entry.read_proc和proc_dir_entry.read_write函数指针来设置读写处理函数。
    调试工具:gdb、gdbserver和调试内核空间程序的kgdb。gdb可跟踪调试用户空间的程序。quit用于退出gdb调试界面;list用于列出程序中的代码。用gdbserver远程调试用户空间程序,是一个可以运行在ARM架构上的服务端程序。首先进入Android模拟器的终端,然后进入data/local目录。Android模拟器只能通过端口映射方式使用gdbserver调试程序。
    用kgdb远程调试内核程序,kgdb除了提供类似prink函数的日志输出功能,还让开发人员在pc上链接目标设备。kgdb包含两部分:kgdb内核和一套链接接口,支持串口tty设备连接和以太网连接。用kgdb调试Linux内核前需要先配置Linux内核和设置内核参数,使用make menuconfig命令进Linux内核配置菜单中。

时间: 2024-11-17 03:47:31

Android深度探索HAL与驱动开发-——第10章的相关文章

Android深度探索HAL与驱动开发 第四章

Android深度探索HAL与驱动开发 第四章 源代码的下载和编译 读书笔记 一.下载编译和测试Android源代码 1.配置Android源代码下载环境 创建一个用于存放下载脚本文件的目录(可将该文件放到任何一个目录在这里使用-/bin) # mkdir ~/bin # PATH=~/bin:$PATH 2.下载repo脚本文件(用于下载Android源代码) # curl htttps://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~/

Android深度探索HAL与驱动开发 第三章

Android深度探索HAL与驱动开发 第三章 Git使用入门 读书笔记 Git是对源代码进行管理的软件. 一.安装Git # apt-get install git # apt-get install git-doc git-emall git-gui gitk 用以下命令控制Git: # apt-get install git-core # apt-get install git-doc git-svn git-email git-gui gitk 二.查看Git文档 查看git-check

Android深度探索HAL与驱动开发 第四章 源代码下载和编译

前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境.Linux内核开发环境的搭建是重点中的重点.下面根据书上的内容和网上的资料写出了步骤: (1)配置Android源代码下载环境: (2)Android源代码目录分别存放了Android源代码的不同子项目 (3)下载Android源代码中的一部分两

Android深度探索HAL与驱动开发 第三章 Git入门

Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的check日期.提交指定代码库需要RSA身份验证,而且需要公钥确定设备能够提交管理代码库. 如果源代码是最能体现软件作者的真正思路的.就像学习Linux内核开发,值找基本所谓的“权威”书籍来看,并不能真正体会Linux内核的核心设计理念.以Andorid源代码的解析和编译测试为基础的驱动开发.要使用内嵌在

Android深度探索--HAL与驱动开发----第五章读书笔记

第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 L

Android深度探索HAL与驱动开发 第五章

第五章 本章学习了搭建S3C6410开发板的测试环境,其中S3C6410开发板是三星推出的一种低功耗,高性价比的RISC处理器,应用广泛,并为2.5G和3G通信服务提供了优化的 硬件性能,内置强大硬件加速其,满足高端服务通信中的数据宽带要求. 搭建开发板的测试环境首先要安装串口调试工具(minicom),因为开发linux驱动程序与android应用程序不同,无法在eclpse上开发.安装minicom步骤如下: 1.检测当前系统是否支持usb转串口 2.安装minicom #apt—git i

Android深度探索HAL与驱动开发-——第9章

第九章:   只要讲的是硬件抽象层HAL,HAL是建立在Linux驱动上的一套程序库.HAL不是Linux内核的一部分而是位于Android的系统运行库层.首先讲的是要加入HAL的好处.包括:统一硬件的调用借口.解决GPL版权问题.针对一些特殊的要求.HAL架构的基本原理是在Android系统中使用程序库调用位于内核空间的Linux驱动,然后Android应用程序可通过NDK程序访问HAL中的程序库,或直接在Android应用程序中访问HAL中的程序库.android HAL的源代码存储的位置并

Android深度探索HAL与驱动开发 第六章

第六章 本章是android底层开发的第一个章节,本章是第一个linux驱动程序,统计单词个数. 本章作为实战第一章,首先要做的就是了解linux驱动到底是个什么东西,首先了解linux驱动的工作方式,linux系统将每一个驱动都映射成一个文件,保存在/dev中,再使用c语言函数ioctl向驱动的设备文件发送打印命令.编写linux驱动程序,需要接受被写入的数据,并将它们通过pc的并口.usb等端口发送给打印机, 需要linux响应应用程序传过来的数据. 然后编写linux驱动程序的步骤,步骤如

Android深度探索--HAL与驱动开发----第四章读书笔记

1. 下载.编译.测试源代码 创建存放下载文件的目录(repo) 下载repo脚本文件 创建用于存放源代码的目录 开始下载源代码. 2. 源代码目录含义摘要 Abi 应用程序二进制接口 Device 于设备相关的代码 External 宽展工具源代码 Ndk NDK相关的源代码 Sdk SDK如ddms.draw9patch.sdkmannager. System Android的基本系统 3. 下载源代码中的一部分 使用repo sync命令 使用git clone命令 4. linux内核目