我目前在做openwrt系统的定制,基于tp-link的wr841n v8一直到ar9341的板子上,发现reset按钮不能正常工作,但是gpio值设置的是正确的,linux内核为3.3.8. 所以我想继续排查这个问题需要了解,当我按下按钮的时候如何在console提示我已经按下按钮了呢? 我通过查看/sys/kernel/debug/gpio这个文件看到我注册的gpio 17 为reset button没有问题。 请高手指点一二,谢谢.
【虽然已在内核板块问了,但是由于很急,所以在驱动板块也为以下,期待帮助】 请教问题:在ARM平台上,大家一般都怎么调试Linux驱动程序啊? 对于硬件驱动程序,考虑到兼容性,一般都有较多的switch/case或者if else。除了printk,还有哪些方式能调试呢?如何跟踪执行的case,以及相关重要的结构体的赋值呢,能单步吗? 另外,当驱动编译成module和build-in方式时,调试的方法有什么区别(也就是说,如何调试uImage和ko文件)?有...
小弟正式进入linux系统学习,近来想先学学怎么调试驱动。但又不知道怎么下手,比如串口驱动,iic驱动。开发板以准备好了,小弟在这方面没什么经验,希望前辈能指点一下。不想光看理论方面,想多实践。谢谢大家,谢谢关照。
本帖最后由 black__list 于 2012-12-25 23:06 编辑 前几天写的led驱动,移植后发现灯不亮,请问怎样调试。。。。 在线等。。。。。。有知道的说一声,谢谢。。
对于驱动程序设计来说,核心问题之一就是如何完成调试。当前常用的驱动调试技
今天在写一个驱动时,出现这种现象就是:比如说驱动A会调用2.6内核里的某个函数B,我在B中写PRINTK后在INSMOD A驱动后时发现不能看到函数B中的PRINTK信息,这是怎么回事?
调试驱动方法: 1. 判断有没有进入asm_do_IRQ函数 这个函数在linux-2.6.x/arch/arm/kernel/irq.c文件中定义 2. 判断有没有进入handle_level_irq或者handle_edge_irq函数。 这两个函数在linux-2.6.x/kernel/irq/chip.c文件中定义。 3. 判断有没有进入驱动的中断服务例程。 这个函数一般由驱动作者编写 4.单步调试 在需要单步调试的文件开头添加如下代码 #include /* Print trace message */ #define TRACE \ printk("%s...
1 注销设备号的时候一定要将申请的空间一同清空,否则设备号是无法注销掉的。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/76419/showart_1663777.html