2018年3月30日

27、驱动调试之修改系统时钟中断定位系统僵死问题

摘要: 该调试方法用于处理运行驱动的时候系统进入僵死状态,即无反应了,也不能输出信息 利用每时每刻系统时钟都会尝试中断的原理来处理,在该中断函数中加入打印一些信息保存信息来定位僵死的原因(中断发生的时候会保存现场,找到现场就知道僵死的函数地址) (2.6的内核中断总入口函数是asm_do_IRQ(),其形参 阅读全文

posted @ 2018-03-30 20:21 拉风摊主 阅读(238) 评论(0) 推荐(0)

25、驱动调试之打印到proc虚拟文件

摘要: 1、dmesg指令是通过读/proc/kmsg来获取打印信息,也可以通过cat /proc/kmsg打印; 说明:kmsg是环形缓存区,只能读一次 2、内核中fs/proc目录下有相关文件,比如proc_misc.c,在入口函数中可以看到(4.3.2内核改到kmsg.c文件中) #ifdef CIN 阅读全文

posted @ 2018-03-30 20:19 拉风摊主 阅读(292) 评论(0) 推荐(0)

26、驱动调试之根据oops信息和堆栈确定出错的代码

摘要: a.驱动作为模块:1. 根据pc值确定该指令属于内核还是外加的模块pc=0xbf000018 它属于什么的地址?是内核还是通过insmod加载的驱动程序?先判断是否属于内核的地址: 看System.map确定内核的函数的地址范围:c0004000~c03265a4 <System.map文件在内核m 阅读全文

posted @ 2018-03-30 20:19 拉风摊主 阅读(445) 评论(0) 推荐(0)

24、驱动调试之printk

摘要: 1、uboot跳转到内核启动的时候通过环境变量 console设置控制台 (console = ttySAC0表示输出到串口,并从串口结束输入,也可以设置console=tty1,表示输出到LCD,从inputevent接受输入事件) 2、内核用printk打印,printk肯定要调用硬件函数,其通 阅读全文

posted @ 2018-03-30 20:18 拉风摊主 阅读(317) 评论(0) 推荐(0)

导航