Android深度探索第十章

  对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息。虽然嵌入式Linux在调试方面并没有Visual Studio、Delphi、Eclipse这些可视化工具方便,但学习一些这方面的技术无疑是更有助于开发强大而稳定的Linux内核模块。

  虽然使用printk函数可以很方便地将消息写入日志文件或控制台。但大量使用printk函数频繁操作日志文件或控制台设备文件会影响Linux驱动的性能,因此,这就要求Linux驱动在开发阶段使用printk函数输出消息,在正式发布Linux驱动时将可能影响性能的printk函数去掉。

  printk函数在控制台显示消息是通过/dev/console设备文件实现的,该设备文件只在字符界面的控制台下才起作用,所以printk函数只有用在字符界面的控制台上才能正常输出消息。

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

时间: 2024-11-05 12:23:43

Android深度探索第十章的相关文章

Android深度探索第十章总结

学习第十章,也就是嵌入式Linux的调试技术.主要介绍如何利用开发板.Android模拟器以及一些函数.工具(gdb.gdbserver以及kgdb)调试嵌入式Linux内核模块.可执行程序和共享库.1.打印内核调试信息:printk.Printk函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间,printk函数在printk.c文件中实现.不管消息级别是多少,所有通过printk函数发出的消息都会输出到日志文件(就算有的消息输出到控制台,也会

android深度探索第十章心得体会

第十章讲了 对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试.例如设置断点.逐步跟踪代码输出调试信息等. 在Linux系统中,/proc经常被用来作为内核空间与用户空间进行数据交互的工具,/proc文件系统的行为方式与设备文件系统类似./proc是虚拟文件系统,也就是说,/proc并不是真正的文件系统,而是内存映射.所有读写/proc的操作都是对内存的读写.所以读写/proc文件系统的速度要远比读写/dev文件系统的速度快,因此,/proc文件系统也可作为Linux驱动与

Android深度探索——第十章读书笔记及心得

嵌入式linux的调用技术 ——第10章读书笔记及心得 通过本章的学习了解了printk函数.该函数与printf函数类似,用于打印内核调试信息.只是前者运行在内核空间,后者运行在用户空间.即linux驱动这样的linux内核程序只能使用printk函数输出调试信息.Printk函数的原型:asmLinkKage int printk(const char *fmt,…).Printk文件是一个简单的有4个数字组成的文本文件,该文件的默认值问6 4 1 7.6代表将消息输出到控制台的级别,只有高

《Android深度探索》第十章心得体会

<Android深度探索>第十章讲的是嵌入式Linux的调试技术.对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行测试.printk函数的用法和printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间.也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息.在Linux文件系统中,/proc经常用来作为内核空间和用户空间进行数据交互的工具./proc文件系统的行为方式和设备文件系统(/dev)类似./proc是

Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术

Android深度探索(卷1)HAL与驱动开发 心得体会 第十章  嵌入式Linux的调用技术 对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试.例如,设置断点,逐步跟踪代码.输出调试信息等.虽然嵌入式Linux在调试方面并没有Visual Studio.Delphi.Eclipse这些可视化工具方便,但是学习一些这方面的技术无疑更有助于开发强大而稳定的Linux内核模块. 对于嵌入式Linux内核模块,可执行程序.代码库的调试可能更要复杂些.因为在大多数时候需要至少两台

Android深度探索(卷一)HAL与驱动开发 第十章

通过学习Android深度探索(卷一)HAL与驱动开发的第十章让我知道了嵌入式Linux的调试技术和调试工具有哪些. Printk可以打印内核调试信息,该函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间.Printk文件是一个简单的有四个数字组成的文本文件,该文件默认值为:6:将消息输出到控制台的级别:4:默认的消息日志级别:1:控制台日志级别可被设置的最小值:7:控制台日志级别的默认值.不管消息级别是多少,所有通过printk函数发出的消息

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深度探索(卷1)HAL与驱动开发学习笔记(2)

Android深度探索(卷1)HAL与驱动开发学习笔记(2) 第二章搭建Android开发环境 书中介绍了两种JDK的安装方法, 方法一: 从官网下载JDK并进行配置,解压后在终端打开profile文件来设置PATH环境变量(# soure /etc/profile),打开profile文件后输入下面的内容 export PATH=.:developer/jdk6/bin:$PATH 保存profile文件以后,有两种方法可以重新加载profile文件. 1.# sourse  /etc/pro