第十章

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十章相关的知识,希望对你有一定的参考价值。

第十章讲的是嵌入式Linux的调试技术,对于复杂的Linux驱动及HAL等程序,需要使用各种方法对其进行调试,;如,设置断点、逐步跟踪代码、输出调试信息等。

本章主要介绍如何利用开发板、android模拟器以及一些函数、工具调试嵌入式linux内核模块、可执行文件和共享库。

首先讲的是打印内核信息:printk,该函数运行在用户空间,与printf类似。Linux系统通过/proc/sys/kernel/printk文件来控制printk函数输出日志信息的输出方向。Printk文件是一个简单的有4个数字组成的文本文件,4个数字含义分别如下:

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

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

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

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

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

LINUX系统中提供了一类工作,通过他们可以逐步跟踪程序的代码,首先是用gdb调试用户空间程序,以及用kgdb远程调试内核程序。具体内容可以参考书上的代码部分。

用gdb调试用户空间程序,它可以跟踪调试用户空间的程序。list用于列出程序中的代码。Android模拟器只能通过端口映射方式使用gdbserver调试程序。用kgdb远程调试内核程序,它除了提供类似printk函数的日记输出功能,还允许开发人员直接在PC上通过gdb链接目标设备。在设置完Linux内核的启动参数后,本机就可以使用gdb命令向调试普通嵌入式应用程序一样调试Linux内核,用各种.gdb命令进行Linux内核调试。本章介绍了传统的printk函数和其它的一些调试技术。

第十章除了介绍printk函数调试技术以外,也介绍了其他调试技术,我们可以根据实际情况决定使用哪种。

以上是关于第十章的主要内容,如果未能解决你的问题,请参考以下文章

Differential Geometry之第十章极小曲面

第十章

第十章习题答案

《python for data analysis》第十章,时间序列

SEO 第十章

第十章随笔