第十章 读书笔记

第十章  嵌入式 Linux 的调试技术

printk 函数的原型如下:asmlinkage int printk(const char * fmt, ... )

printk文件是一个简单的有 4 个数字组成的文本文件,6,4,1,7

6: 将消息输出到控制台的级别。只有商于该级别的输出信息才会输出到控制台。

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

1:控制台日志级别可被设置的最小值〈最高优先级别〉。

7: 控制台日志级别的默认值。

虽然使用 printk 函数可以很方便地将消息写入日志文件或控制台。但大量使用 printk 函数频繁 操作日志文件或控制台设备文件 Udev/console)会严重影响 Linux 驱动的性能(因为写磁盘的速度 远没有读写内存的速度快),因此,这就要求 Linux 驱动只在开发阶段使用 printk 函数输出消息, 在正式友布 Linux 驱动时将可能影响性能的 printk 函数去掉。 当然,最容易想到的方法就是挨个删 除 printk 函数,或注释 printk 函数。但这样做很麻烦,而且以后想加上 printk 函数也是同样麻烦。 要想控制 printk 函数的输出,而且实现起来很方便, 最好的方法无疑是利用 C 语言中的编译指令 (#i队 #else、#endif等)。

http://www.cnblogs.com/yangsasa/

原文地址:https://www.cnblogs.com/yangsasa/p/5651608.html