加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

(2022-08-17 16:52:04)
标签:

bootloader

bsp

mdk

can

lua

分类: STM32
【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱机运行

【应用场景】

上电后一段时间进入硬件异常,或执行某个功能就进入硬件异常,我们可以方便的通过IDE软件或者嵌入的异常分析代码来锁定问题位置。

而运行比较长的时间,比如两周,一个月等,这就不方便挂个电脑分析了。

挂个TOOL就比较方便,可以长时间检测跟踪芯片的运行,出问题的时候可以关键信息导出来。简单的可以TOOL自带显示屏直接分析出结果,复杂的可以电脑端上位机软件分析。


【功能介绍】

1、初版先实现了类似MDK的fault reports功能。

2、支持脱机运行。

3、除了非精确异常错误,大部分都可以锁定异常出错位置。


【Lua小程序】

hardfault.lua (24.7 KB)


【操作说明】

1、操作例子使用本帖参考资料里面配套的一个例子,里面集成了一些经典错误案例,方便我们测试效果

2、将LUA文件内容复制粘贴到如下位置,并将TOOL采用SWD接口模式连接目标板。

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱


(1)非法地址读取锁定的错误效果

TOOL测试:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

TOOL锁定的出错位置:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

实际MDK查看出错位置没问题:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱


(2)非对齐访问检测效果

TOOL测试:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

TOOL锁定的出错位置:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

实际MDK查看出错位置没问题:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱


(3)非精确的异常,这种的不能锁定异常位置

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱


【脱机运行】

将hardfault.lua文件存到eMMC磁盘如下路径:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱

TOOL重新上电后,进入如下位置即可运行Lua小程序查看:

【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱


【参考资料】

帖子里面有个各种异常展示案例

视频教程第6期:MDK专题进阶,Cortex-M内核芯片Hardfault硬件异常调试分析定位(2022-02-17)

https://www.armbbs.cn/forum.php?mod=viewthread&tid=110982

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有