搜索
 找回密码
 立即注册

简单一步 , 微信登陆

GPIO调试跟踪方法

作者:momo | 时间:2022-5-17 09:37:32 | 阅读:3787| 只看该作者
停在uboot或者系统起来之后,可以用mtvtool或者graffito tool读下对应register的值看是否有被改了。
如果要monitor可以参考下面的方法。
//
在 mboot 中添加监测点,为了在开机阶段就抓到异常的点。
在 mboot 中用 ac 命令添加寄存器 watchpoint,开机阶段如果寄存器被修改,就可以打印出修改的调用栈,从而定位是谁修改的。
命令格式:
ac hwwp io,,repeat
ac loglevel 7
(注:需要开 loglevel 7 才能看到 log)
reg_addr 计算公式:
计算公式
reg_addr = 0x1F000000 + (bank << 9) + (offset <<2)
#或者
reg_addr = 0x1F000000 + (bank * 512) + (offset * 4)
offset 是基于 16bit 的。
以 9629上GPIO的 bank_3229_34 为例,base address 是 0x1F000000,计算结果就是:
0x1F000000 + (0x3229 << 9) + (0x34 << 2) = 0x1f6452d0
ac hwwp io,0x1f6452d0,repeat
ac loglevel 7

设置之后,重启,在 log 中搜  mt_perf ,就可以看到每次修改该寄存器值的调用栈,方便快速定位到寄存器被谁修改了。
[    5.134447] mt_perf: The monitored value in addr fd6452d0 is 0
[    5.140302] mt_perf: stacktrace for swapper/0-1:
[    5.144958] mt_perf: [c08cd57c] HalSdio_Platform_InitChiptop+0x4c/0x3a0
[    5.151597] mt_perf: [c08cbcac] HalSdio_Init+0x38/0x78
[    5.156756] mt_perf: [c08cb1d4] mmc_sdio_probe+0x2c/0x1d8
[    5.162178] mt_perf: [c065546c] platform_drv_probe+0x7c/0xb4
[    5.167858] mt_perf: [c0652f78] really_probe+0x218/0x2c0
[    5.173190] mt_perf: [c06531f4] driver_probe_device+0x70/0x1bc
[    5.179042] mt_perf: [c0653430] __driver_attach+0xf0/0xf4
[    5.184459] mt_perf: [c0650d1c] bus_for_each_dev+0x78/0xc4
[    5.189963] mt_perf: [c0652860] driver_attach+0x2c/0x30
[    5.195207] mt_perf: [c0652284] bus_add_driver+0x1ac/0x224
[    5.200798] mt_perf: The monitored value in addr fd6452d0 is 1
[    5.206666] mt_perf: stacktrace for swapper/0-1:
[    5.211320] mt_perf: [c08cd594] HalSdio_Platform_InitChiptop+0x64/0x3a0
[    5.217959] mt_perf: [c08cbcac] HalSdio_Init+0x38/0x78
[    5.223118] mt_perf: [c08cb1d4] mmc_sdio_probe+0x2c/0x1d8
[    5.228537] mt_perf: [c065546c] platform_drv_probe+0x7c/0xb4
[    5.234218] mt_perf: [c0652f78] really_probe+0x218/0x2c0
[    5.239551] mt_perf: [c06531f4] driver_probe_device+0x70/0x1bc
[    5.245394] mt_perf: [c0653430] __driver_attach+0xf0/0xf4
[    5.250811] mt_perf: [c0650d1c] bus_for_each_dev+0x78/0xc4
[    5.256316] mt_perf: [c0652860] driver_attach+0x2c/0x30
[    5.261559] mt_perf: [c0652284] bus_add_driver+0x1ac/0x224

[tr][td]



收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

大神点评1

沙发#
maca 发表于:2022-5-18 11:31:36
学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

momo

主题 1
帖子 1
积分 25
此人很懒,什么也没留下。
阅读作者更多精彩帖子

热门问答

更多>
点击,跳转商城咨询客服
手机版