驱动调试技巧

驱动调试

如何利用dts

注意关注gpio和irq
在这里插入图片描述
注意 等号 左边变量 与驱动 probe函数里边对应:
在这里插入图片描述

如何调gpio

想知道gpio电平状态
在driver中调用api后,编译下载,看/sys/class/gpio目录
在这里插入图片描述

如何调试irq

调试时候需要确定硬件是否产生中断:后看需要的文件(本质看源码)

cat /proc/interrupts

cd /proc/irq/irq_num
dts和sysfs有什么关联

方便确定使用的设备用的哪个系统dts
查看运行的系统设备树相关信息:包括dts节点以及属性均在sysfs

cd /sys/firmware/devicetree/base
sysfs用处

sysfs可以看出devic是否注册成功,存在的device,driver是否匹配等;

  1. 查看device是否注册,eg:
    i2c总线下的设备,首先确定设备挂接的总线是哪个(i2c0,i2c1),例如i2c1,从地址0x1c,那么/sys/bus/i2c/devices/下查看是否有 1-001c即可
  2. 如何确定device是否匹配了驱动?进入1-001c 目录,可以看到driver的符号链接,如果没有,就是没有driver
  3. 如何确定driver是否注册?cd /sysfs/bus/i2c/drivers 同上
排查driver的probe没有执行问题

probe是否执行只和device和driver是否匹配成功有关,排查方法:

  1. 通过sysfs确定对应的device是否注册成功
  2. 通过sysfs确定对应的driver是否注册成功
  3. 通过sysfs中的dts展开信息得到compatible属性的值,然后和driver的compatible进行对比
    1.1 如果device没注册:首先通过sysfs中dts展开文件查看是否有添加的device信息,没有就在dts添加device信息;如有添加。查看设备树中相应设备status属性是否是 okay
    2.1 如果driver没注册就查看对应Makefile是否参与编译,看log信息,是不是驱动注册时报错了

原文:驱动调试技巧点滴分享

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值