当前位置:首页 > 公众号精选 > strongerHuang
[导读]关注、 星标公众号,不错过精彩内容 作者:armink 编辑整理:strongerHuang 相信有不少读者都遇到过 “HardFault” 的问题,而且不止一次,有时候可能因为它连续几日加班,甚至通宵。 那么今天就来分享一个由armink(也就是现在RTT里面的那位朱大神)整理的开

ce: normal;letter-spacing: 0.54px;background-color: rgb(255, 255, 255);text-align: center;"> 关注、 星标公众,不错过精彩内容

作者:armink

编辑整理:strongerHuang


相信有不少读者都遇到过 “HardFault 的问题,而且不止一次,有时候可能因为它连续几日加班,甚至通宵。


那么今天就来分享一个由armink(也就是现在RTT里面的那位朱大神)整理的开源库,借花献佛分享给大家。


该库采用采用 MIT 开源协议,开源地址:

https://github.com/armink/CmBacktrace


一、CmBacktrace 是什么

CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下:


1.支持的错误包括

  • 断言(assert)

  • 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)


2.故障原因自动诊断

可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无需再手动分析繁杂的故障寄存器;


3.输出错误现场的函数调用栈(需配合 addr2line 工具进行精确定位),还原发生错误时的现场信息,定位问题代码位置、逻辑更加快捷、精准。也可以在正常状态下使用该库,获取当前的函数调用栈;


4.支持 裸机 及以下操作系统平台:

  • RT-Thread

  • UCOS

  • FreeRTOS(需修改源码)


5.根据错误现场状态,输出对应的 线程栈 或 C 主栈;


6.故障诊断信息支持多国语言(目前:简体中文、英文);


7.适配 Cortex-M0/M3/M4/M7 MCU


8.支持 IAR、KEIL、GCC 编译器;


二、为什么选择 CmBacktrace

入门新人:对于从 C51 、MSP430 等简单单片机转而使用更加复杂的 ARM 新人来说,时不时出现的 "hard falut" 死机会让新人瞬间懵掉。定位错误的方法也往往是连接上仿真器,一步步 F10/F11 单步,定位到具体的错误代码,再去猜测、排除、推敲错误原因,这种过程十分痛苦。


熟练老手:慢慢的大家知道可以通过故障寄存器信息来定位故障原因及故障代码地址,虽然这样能解决一小部分问题,但是重复的、繁琐的分析过程也会耽误很多时间。而且对于一些复杂问题,只依靠代码地址是无法解决的,必须得还原错误现场的函数调用逻辑关系。虽然连接仿真器可以查看到的函数调用栈,但故障状态下是无法显示的,所以还是得一步步 F10/F11 单步去定位错误代码的位置。另外,还有两种场景,

1、很多产品真机调试时必须断开仿真器

2、问题确实存在,但是极难被重现


所以定位这类问题就显得难上加难。


使用本库:上述所有问题都迎刃而解,可以将错误信息输出到控制台上,还可以将错误信息使用 EasyFlash 的 Log 功能保存至 Flash 中,设备死机后重启依然能够读取上次的错误信息。CmBacktrace 输出的信息包括函数调用栈、故障诊断结果、堆栈、故障寄存器及产品固件信息,极大的提升了错误定位的效率及准确性。


俗话说,工欲善其事,必先利其器。所以有时候做事效率低的原因也许是,你会用的工具种类太少。


三、CmBacktrace 如何使用

本文就简单演示一下,演示分如下几个步骤:

1、制造除零异常(IAR 工程,点击查看源码)

2、查看错误诊断信息

3、查看函数调用栈基本信息

4、通过命令行工具进入项目工程存放可执行文件的路径

5、使用 addr2line 命令,查看函数调用栈详细信息,并定位错误代码


具体的使用方法,请见原始说明文档,里面描述了很多细节内容。


开源地址:

https://github.com/armink/CmBacktrace


免责声明: 本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。
推荐阅读:
代码为什么需要遵循规范?
为什么IoT设备的操作系统选用RTOS
从大端CPU迁移到小端CPU,及字节序的迁移技术

关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


center;color: rgb(0, 0, 0);line-height: normal;letter-spacing: 1.5px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">长按前往图中包含的公众号关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

ckquote>
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭