一、防止printk函数降低Linux驱动性能
大量使用printk函数频繁操作日志文件或控制台设备文件会严重影响Linux驱动性能(因写磁盘速度远没有读写内存的速度快),因此,要求Linux驱动只在开发阶段使用printk函数输出信息,在正式发布时将其去掉。
printk函数在控制台显示消息是通过/dev/console设备文件实现的,该设备只在字符界面的控制台下起作用,所以printk函数只有用在字符界面的控制台上才能正常输出消息。
可变参数宏与固定参数宏的不同之处就是可变参数宏需要通过_VA_ARGS宏获取可变参数宏的可变参数。_VA_ARGS宏不支持可变参数个数为0的情况。
二、通过虚拟文件系统(/proc)进行数据交互
/proc是虚拟文件系统,其读写操作都是对内存的读写,其读写速度远比读写/dev文件系统快,因此,其可作为Linux驱动与用户空间程序交互的工具。
当前系统的内存资源是通过/proc/meminfo文件获取的。通过proc_dir_entry.read_proc和proc_dir_entry.read_write函数指针来设置其读写目录中的虚拟文件的动作处理函数,proc_dir_entry结构体代表一个虚拟目录或文件。
Linux文件的读写由属性决定,在程序中可用八进制表示。删除虚拟目录之前,要先删除虚拟目录中的虚拟文件。
三、List命令的3种调用格式
list、list_、和list n 三种格式,首先使用list命令显示代码。执行上面的命令会进入gdb控制台,然后执行相关的命令连接Android模拟器。