第十章

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

打印内核调试信息:printk

printk函数的用法和printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间。也就是说,像Linux 驱动这样的linux肉核程序只能使用printk函数输出调试信息。

printk 函数的原型:

asmlinkage int printk(const char * fmt, ... )

1个参数表示格式字符串,后面是可变参数。也就是说,旦printk 函数至少要有1个参数〔格式字符串),如果格式字符串中包含在占位符(%d%s 等), 后面必须跟与占位符相等数量的参数,以便一一对应传入printk 函数

#define KERN_EMERG “<0 >'’ 紧急事件,-般是系统崩溃前显示的信息

#define RN ALERT “<1>" 必须立即处理的行为

#define KERN_CRIT “<2>” 商界状态,通常涉及严重的硬件或软件操作失败

#define KERN ERR <3>” 用于报告错误状态,设备驱动程序会经常使用KERN_ERS报告来自硬件的问题

#define KERN_WARNING “<4>” 对可能出现问题的情况进行警告,这里类问娼通常不会对系统造成严重的影响

#define KERN NOTICE “<5>" 有必要进行提示的正常情况,许多与安全相关的情况用这个级别进行汇报

#define KERN INFO “<6>" 内核提示位信怠,很多驱动程序在启动时,以这个级别打印出找到的硬件信怠

#define KERN DEBUG “<7>”用于调试信息、

4 个数字的含义如下。

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

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

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

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

防止printk函数降低linux驱动性能

利用C 语言中的编译指令(#iif#else 、#endif ,防止printk函数降低linux驱动性能。

 

查看/proc/meminfo 文件的内容。

#cat/proc/meminfo

http://i.cnblogs.com/EditPosts.aspx?opt=1

转载于:https://www.cnblogs.com/Wqian/p/5643523.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值