发布时间:2013-03-07 12:13:57
linux设备驱动调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用 printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。 1、打开调试开关:你调试的文件中必然包含了,或者《linux /paltforam_device.h》,后者包含了前者,在包.........【阅读全文】
发布时间:2013-03-06 22:58:27
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性或定义的函数或数,__attribute__主要用于改变所声明据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数.........【阅读全文】
发布时间:2013-03-03 15:32:42
看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)中定义的两个宏。位于/include/linux/compiler.h中,具体定义如下:#define likely(x) __builtin_expect(!!(x), 1)#define u.........【阅读全文】
发布时间:2013-03-01 12:24:36
友善之臂提供的linux-2.6.32.2为例说明:在使用make menuconfig 配置后生成.config文件在make uImage的时候由.config文件生成include/config/auto.conf, include/linux/autoconf.h这两个文件inclde/linux/autoconf.h为头文件 供内核的源代码使用在该文件中这些宏一般都定义成1include/linux/con.........【阅读全文】