Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45615
  • 博文数量: 11
  • 博客积分: 490
  • 博客等级: 下士
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-24 11:23
文章分类
文章存档

2011年(1)

2009年(10)

我的朋友

分类: LINUX

2009-07-31 19:20:25

今天进入《Linux设备驱动程序(第3版)》第四章调试技术的学习。

一、内核中的调试支持
在前面已经建议过:学习编写驱动程序要构建安装自己的内核(标准主线内核)。最重要的原因之一是:内核开发者已经建立了多项用于调试的功能。但是由于这些功能会造成额外的输出,并导致能下降,因此发行版厂商通常会禁止发行版内核中的调试功能。
为了实现内核调试,我在内核配置上增加了几项:
  Kernel hacking  --->    
        [*] Magic SysRq key
        [*] Kernel debugging
        [*]   Debug slab memory allocations 
        [*]   Spinlock and rw-lock debugging: basic checks
        [*]   Spinlock debugging: sleep-inside-spinlock checking
        [*]   Compile the kernel with debug info 
        [*] Magic SysRq key
Device Drivers  ---> 
        Generic Driver Options  --->
          [*] Driver Core verbose debug messages
General setup  --->
       [*] Configure standard kernel features (for small systems)  --->
          [*]   Load all symbols for debugging/ksymoops
书上介绍的还有其他配置,有的我不需要,或是s3c2440不支持,菜单里看不见。

二、通过打印调试
(1)printk
 首先,printk有8个loglevel,定义在中:

#define    KERN_EMERG    "<0>"    /* system is unusable           */
#define    KERN_ALERT    "<1>"   /* action must be taken immediately*/
管理员在2009年8月13日编辑了该文章文章。 -->

阅读(693) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~