Android深度探索--HAL与驱动开发第十章读后感

嵌入式linux的调试技术,对于复杂的linux驱动及HAL等程序库,需要使用各种方法进行调试,如设置断点,逐步跟踪代码,输出调试信息等。本章主要介绍如何利用开发板、android模拟器以及一些函数、工具调试嵌入式linux内核模块、可执行文件和共享库。

Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息。Printk函数在printk.c文件中实现。Printk文件是一个简单的有4个数字组成的文本文件,4个数字含义分别如下:

6:将消息输出到控制台的级别,只有高于该级别的输出信息才可以被输出到控制台。

4:默认的消息日志级别,如果不在printk函数制定日志级别,就会使用该值作为默认的级别。

1:控制台日志级别可以被设置的最小值。

7:控制台级别级别默认值。

在Linux文件系统中,/proc经常被用来作为内核空间与用户空间进行数据交互的工具。/proc文件系统的行为方式与设备文件系统(/dev)类似。/proc是虚拟文件系统,也就是说,/proc并不是真正的文件系统,而是内存映射。所有读写/proc操作都是对内存的读写。所以读写/proc文件系统的速度远比读写/dev文件系统的速度快。因此,/proc文件系统也可以作为Linux驱动与用户空间程序交互的工具。

Linux内核调试一直被人们认为是非常困难的,大多数人一般都会直接使用peintk函数输出调试,不愿意使用各种命令进行调试,因为这样做有可能换不回更多的好处。

时间: 2024-11-05 06:04:23

Android深度探索--HAL与驱动开发第十章读后感的相关文章

Android深度探索--HAL与驱动开发第一章读后感

第一章:Android系统移植与驱动开发概述 第一章其实就是对安卓与Linux驱动做了一个总体的介绍. 现如今,Android已经成为现在智能手机操作系统的老大,市场占有率已经远远超过iOS,主要的原因主要在于Android的可移植,所有人都可以利用Android的源代码制作属于自己的系统,而且Android的体系结构也近乎完美.但在移植过程中进行最多开发的就是支持各种硬件设备Linux的驱动程序,所以讲移植必定先讲Liunx驱动开发. Android的体系结构主要由Linux内核.C/C++代

Android深度探索--HAL与驱动开发第二章读后感

第二章:搭建Android开发环境 这章主要讲解Android底层开发环境如何搭建,有Android应用程序开发环境.交叉编译环境和NDK开发环境. Android底层开发主要需要配置Linux驱动的开发环境.配置Android应用程序和Android NDK开发环境,而且还需要Liunx驱动及调试开发板进行辅助和测试.主要需要以下工具: JDK6或以上版本: Eclipse3.4或以上版本: ADT(用于开发Android应用程序): CDT(用于开发Android NDK程序): Andro

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

printk函数的用法于-printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间.也就是说,像Linux 驱动这样的Linux内核程序只能使用printk 函数输出调试信息 虽然使用printk 函数可以很方便地将消息写入日志文件或控制台.但大量使用printk 函数频繁操作日志文件或控制台设备文件Udev/console)会严重影响Linux 驱动的性能(因为写磁盘的速度远没有读写内存的速度快〉,因此,这就要求Linux 驱动只在开发阶段使用printk

Android深度探索--HAL与驱动开发第八章读后感

本章介绍蜂鸣器的实现原犁,并实现一个完整的蜂呜器驱动(可以打开和关闭蜂鸣器),蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止.蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音. 在完成过程中,首先完成的是linux驱动的代码重用,首先是编译由多个文件组成的linux驱动,并生成ko文件,最后makefile文件.然后进行驱动模块的依赖,即在一个驱动模块里使用另一个驱动模块里的背到处的符号. 通过有I/O命令可以打开和停止排位PWM

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深度探索HAL与驱动开发 第二章 搭建Android开发环境 读书笔记 一.Android底层开发需要的工具 1.JDK6或以上版本 2.Eclipse3.4或以上版本 3.ADT(用于开发Android的应用程序) 4.CDT(用于开发Android NDK程序) 5.Android SDK 6.Android NDK 7.交叉编译环境 8.Linux内核源代码 9.Android源代码 10.用于调试开发板的串口工具:minicom 二.安装JDK 下载JDK后在终端输入 #

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源代码的解析和编译测试为基础的驱动开发.要使用内嵌在