第十章读书笔记

author author     2022-07-31     471

关键词:

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

 

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

 

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

linux内核调试一直被很多人认为是非常困难的。大多数人宁愿直接使用printk函数输出调试信息,也不愿意使用各种命令(gdb、gdbserver、kgdb等)进行调试。因为这样做并不一定能换来更多的好处。当发现某段代码的bug太多或很难printk函数输出信息找到,可以考虑使用kgdb用step by step的方式定位bug。

http://www.cnblogs.com/xi940626/

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

嵌入式linux的调用技术——第10章读书笔记及心得通过本章的学习了解了printk函数。该函数与printf函数类似,用于打印内核调试信息。只是前者运行在内核空间,后者运行在用户空间。即linux驱动这样的linux内核程序只能使... 查看详情

android深度探索读书笔记第十章

   对于复杂的linux驱动及HAL等程序库,需要使用各种方法对其进行调试。首先接介绍使用printk函数,该函数与printf函数类似,printk函数运行在内核空间,printf函数运行在用户空间。Printk函数的原型:asmlinkageintprintk(const... 查看详情

读书笔记-js高级程序设计-第十章dom

 文档元素是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素在xml中,任何元素都可以是文档元素Node类型Node.ELEMENT_NODE元素Node.ATTRIBUTE_NODE属性Node.TEXT_NODE文本元素Node.CDATA_SECTION_NODE Node.ENTITY_REFERENCE_NODENode... 查看详情

effectivejava第十章并发避免过度同步读书笔记

 避免过度同步为了避免活性失败和安全性失败,再一个被同步的方法或者代码快中,永远不要放弃对客户端的控制。因为外来的,属于不可控的将外来方法调用移出同步的代码快。建立快照使用并发集合,CopyOnWriteArayList。... 查看详情

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

printk函数的用法于-printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息虽然使用printk函数可以很方便地将消息写入日志文件或控... 查看详情

effectivejava第十章并发同步访问共享的可变数据读书笔记

 并发66.同步访问共享的可变数据关键字synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块。如果没有同步,一个线程的变化就不能被其他线程看到。同步不仅可以阻止一个线程看到对象处... 查看详情

《csapp》读书笔记

第一章第二章第三章第四章第五章第六章第七章链接可重定位目标文件符号和符号表符号解析第八章第九章第十章第十一章第十二章逐步添加。。 查看详情

android深度探索(卷1)hal与驱动开发第十章 嵌入式linux的调试技术读书笔记

对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行测试。如设置断点,逐步跟踪代码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和... 查看详情

《programminginc》读书笔记

...  第八章、结构体使用  第九章、字符串使用  第十章、指针  第十一章、位运算  第十 查看详情

算法作业13——《算法图解》读书笔记

...婪算法第九章:动态规划(背包问题,最长公共子串)第十章:K最近邻算法 对于刚刚开始学习算法的同学来说,此时还没有对算法建立起极大的兴趣,过于枯燥的算法表述可能会让人望而却步。这个 查看详情

javascriptdom编程艺术读书笔记

第十章实现动画效果varrepeat="moveElement(‘"+elementID+"‘,"+final_x+","+final_y+","+interval+")";第一个参数是个字符串,所以需要单引号!!!move_elem=setTimeout(repeat,interval);  //复制给一个变量,当我们想取消一个正在排队等待执行的函数,可... 查看详情

《android深度探索》读书笔记10

看了本书第十章,我学习到了:1.printk函数:运行在内核空间,linux驱动只能用printk来打印内核调试信息。函数原型:asmlikageintprintk(constchar*fmt)。第一个参数表示格式字符串,后面是可变参数,第一个参数若为KERN_DEBUG和KERN_WARNING... 查看详情

第十章executor框架(代码片段)

《Java并发编程的艺术》读书笔记系列文章思维导图关键知识点背景介绍Java的线程既是工作单元,也是执行机制。从JDK5开始,把工作单元与执行机制分离开来。工作单元包括Runnable和Callable,而执行机制由Executor框架提... 查看详情

andriod深度探索(卷1)hal与驱动开发第十章读书心得

对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也... 查看详情

《浪潮之巅》读书笔记-第九、十章

参考技术A《浪潮之巅》读到这里,个人认为是书中比较精彩的部分。这两章讲了雅虎和惠普,我想我之所以能饶有兴致的很快看完,也有部分原因是因为雅虎代表了互联网时代的开始,而我经历了那个年代的变迁。惠普是我从... 查看详情

构建之法——读书笔记

...为“典型用户和场景”以及“软件设计与实现”。其中第十章大部分内容包含:用户的分类(典型用户可以包括以下内容:1.名字(越自然越好)2.年龄(不同年龄和收入的用户有不同的需求)3.收入4.代表的用户在市场上的比例... 查看详情

unityshader入门精要读书笔记序章

...:透明度测试和透明度混合。第九章:复杂光照实现。第十章:高级纹理(立方体纹理等)。第十一章:纹理动 查看详情

《人月神话》读书笔记之四

本周继续阅读《人月神话》,本周度过的部分是第十章和第十一章(“提纲挈领”和“未雨绸缪”),以下是对该两章的感想。 一、提纲挈领提纲挈领一章描述的是经理与文件的关系。作者一开始便给文件做了定性:文档的某... 查看详情