amobbs.com 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: sunnydragon

【开源】ARM Cortex-M 错误追踪库,让 HardFault 不再可怕

  [复制链接]
(83868537)
发表于 2017-11-6 11:43:39 | 显示全部楼层
sunnydragon 发表于 2017-11-4 21:34
有没有用 GitHub 上 demo 下的 FreeRTOS demo 呢?

FreeRTOS 的改动说明,在说明文档的最下面有讲的: h ...

看您在prvInitialiseNewTask函数里加了一句。
pxNewTCB->uxSizeOfStack = ulStackDepth;   /*< Support For CmBacktrace >*/

我的FreeRTOS是8.2.3,没有这个函数。
(83868379)
发表于 2017-11-6 11:46:17 | 显示全部楼层
我加到了
xTaskGenericCreate
这个函数里
(82058019)
发表于 2017-11-27 10:38:57 | 显示全部楼层
我是新手,移植不成功,求楼主把移植说的更明白些。
(82046762)
发表于 2017-11-27 13:46:34 | 显示全部楼层
这工具不错很给力,感谢分享
(79768544)
发表于 2017-12-23 22:36:52 | 显示全部楼层
什么时候支持RTX呀?
(79647997)
 楼主| 发表于 2017-12-25 08:05:59 | 显示全部楼层
yanyanyan168 发表于 2017-12-23 22:36
什么时候支持RTX呀?

暂时不会支持哦~
(79645357)
发表于 2017-12-25 08:49:59 | 显示全部楼层
支持楼主开源分享精神
(79558178)
发表于 2017-12-26 09:02:58 | 显示全部楼层
支持楼主开源分享精神
(79542936)
发表于 2017-12-26 13:17:00 | 显示全部楼层
mark, 谢谢分享
(79382841)
发表于 2017-12-28 09:45:15 | 显示全部楼层
鼓励,好东西,辛苦了。
(79368364)
发表于 2017-12-28 13:46:32 | 显示全部楼层
楼主的工具直戳我们心头的痛呀,好东西,感谢楼主分享。
(78331720)
发表于 2018-1-9 13:43:56 | 显示全部楼层
本帖最后由 onev 于 2018-1-9 13:55 编辑

实验了一下 楼主的挺好用的    楼主有没有更详细的其他demo
(78321784)
发表于 2018-1-9 16:29:32 | 显示全部楼层
感谢牛人分享,给你点赞!!!
(78245077)
发表于 2018-1-10 13:47:59 | 显示全部楼层
很棒啊,支持支持
(78225426)
发表于 2018-1-10 19:15:30 | 显示全部楼层
很好的东西,支持。
(78145078)
发表于 2018-1-11 17:34:38 | 显示全部楼层
楼主,您好,我这边运行addr2line -e CmBacktrace.axf -a -f 08001cda 08001d2d 08002614 08002614 08001d2d 08002614 08000261 ,提示 supported targets:pe-i386 elf32-i386 等这些,看不到 错误的提示信息,请问这个问题要怎么解决一下呢,谢谢。
(78139242)
 楼主| 发表于 2018-1-11 19:11:54 | 显示全部楼层
lpdpzc 发表于 2018-1-11 17:34
楼主,您好,我这边运行addr2line -e CmBacktrace.axf -a -f 08001cda 08001d2d 08002614 08002614 08001d2 ...

不太明白你的操作,务必要按照教程文档中方法来操作。

https://github.com/armink/CmBacktrace

https://github.com/armink/CmBack ... e_for_call_stack.md
(78075060)
发表于 2018-1-12 13:01:36 | 显示全部楼层
感谢分享!
(78072510)
发表于 2018-1-12 13:44:06 | 显示全部楼层
sunnydragon 发表于 2018-1-11 19:11
不太明白你的操作,务必要按照教程文档中方法来操作。

https://github.com/armink/CmBacktrace

感谢你的回复,已经解决,是电脑系统的问题,没有-a 项,换台电脑后解决。
(78047621)
发表于 2018-1-12 20:38:55 | 显示全部楼层
好呀正需要
(77877201)
发表于 2018-1-14 19:59:15 | 显示全部楼层
very nice! 赞一个
(77714586)
发表于 2018-1-16 17:09:30 | 显示全部楼层
请教楼主

测试错误输出:
Bus fault is caused by imprecise data access violation
Show more call stack info by run: addr2line -e CmBacktrace.axf -a -f s

1.为什么没有跟错误函数地址?
2.CmBacktrace.axf是不存在的,这个是固定的?
(77698564)
 楼主| 发表于 2018-1-16 21:36:32 | 显示全部楼层
xingkong911 发表于 2018-1-16 17:09
请教楼主

测试错误输出:

使用的 GitHub 上的最新版吗?
(77659294)
发表于 2018-1-17 08:31:02 | 显示全部楼层
sunnydragon 发表于 2018-1-16 21:36
使用的 GitHub 上的最新版吗?

是,从GitHub下载的
直接测试你的例程是正常显示
(77647479)
 楼主| 发表于 2018-1-17 11:47:57 | 显示全部楼层
xingkong911 发表于 2018-1-17 08:31
是,从GitHub下载的
直接测试你的例程是正常显示

文档里面有说明这个固件名字的初始化

https://github.com/armink/CmBacktrace#24-api-%E8%AF%B4%E6%98%8E

建议先把 STM32 的 demo 彻底熟悉后,先基于 demo  工程进行移植测试。最后再完全移植到自己的项目中。
(77552893)
发表于 2018-1-18 14:04:23 | 显示全部楼层
感谢分享!
(77539177)
发表于 2018-1-18 17:52:59 | 显示全部楼层
感谢楼主!!!
(77206463)
发表于 2018-1-22 14:18:13 | 显示全部楼层
收藏,这下方便了
(63050050)
发表于 2018-7-5 10:38:26 | 显示全部楼层
很好用,感谢分享!
(55075254)
发表于 2018-10-5 17:51:42 | 显示全部楼层
大侠
没有M4的裸机例程啊
(55024330)
发表于 2018-10-6 08:00:26 | 显示全部楼层
不错,下载试试看,多谢楼主。
(44951732)
发表于 2019-1-30 21:57:04 | 显示全部楼层

挺好的东西
(44710306)
发表于 2019-2-2 17:00:50 来自手机 | 显示全部楼层
感谢楼主,辛苦了
(43499710)
发表于 2019-2-16 17:17:26 | 显示全部楼层
遇到HardFault经常找半天,下载来好好研究下。
(42483594)
发表于 2019-2-28 11:32:42 | 显示全部楼层
太强大了,感谢楼主分享!
(22930384)
发表于 2019-10-12 18:59:32 | 显示全部楼层
楼主的水平非常高,而且无私分享,佩服佩服。
(3912000)
发表于 2020-5-19 21:52:36 | 显示全部楼层
请问这个移植到FreeRTOS,使用AC6报错。说_sstack等没定义,有人知道怎么做吗?谢谢!
#elif defined(__GNUC__)
    /* C stack block start address, defined on linker script file, default is _sstack */
    #ifndef CMB_CSTACK_BLOCK_START
    #define CMB_CSTACK_BLOCK_START         _sstack
    #endif
    /* C stack block end address, defined on linker script file, default is _estack */
    #ifndef CMB_CSTACK_BLOCK_END
    #define CMB_CSTACK_BLOCK_END           _estack
    #endif
    /* code section start address, defined on linker script file, default is _stext */
    #ifndef CMB_CODE_SECTION_START
    #define CMB_CODE_SECTION_START         _stext
    #endif
    /* code section end address, defined on linker script file, default is _etext */
    #ifndef CMB_CODE_SECTION_END
    #define CMB_CODE_SECTION_END           _etext
    #endif
#else
(2524632)
发表于 2020-6-4 23:15:24 | 显示全部楼层
试过了,一开始不能打印完全,比如“addr2line -e CmBacktrace.out -a -f 08001dfc 08000178 08002b10”只能打印出"addr2line -e CmBacktrace.out -a -f s"
研究发现 我的打印使用是RTT 在 print_call_stack()函数中,有个打印会打印不出来,于是先用sprintf函数先构建字符串 然后整体打印出来即可
后续发现使用addr2line -e CmBacktrace.out -a -f 08001dfc 08000178 08002b10 在CMD中没效果,最后把 addr2line 的路径加到环境变量里面解决了
(2299937)
发表于 2020-6-7 13:40:19 来自手机 | 显示全部楼层
谢谢分享,收藏备用
(1876715)
发表于 2020-6-12 11:14:01 | 显示全部楼层
本帖最后由 oooios 于 2020-6-12 21:30 编辑

请问一下,使用j-link RTT的easylog输出打印不全。还望多多指教。
D/===== Thread stack information =====

D/Show more call stack info by run: addr2line -e CmBacktrace.axf -a -f 0002ebe4 0002fd20 00026954 

(366248)
发表于 5 天前 | 显示全部楼层
感谢牛人的分享,学习一下
(331664)
发表于 4 天前 来自手机 | 显示全部楼层
不错,这个可以加精
(318780)
发表于 4 天前 | 显示全部楼层
感谢分享
(235490)
发表于 3 天前 | 显示全部楼层
好东西,做个记号
(69032)
发表于 昨天 09:22 | 显示全部楼层
对楼主表示敬意,我这里有一个FreeRTOS的项目,随机故障,正好用这个找找原因
(67134)
发表于 昨天 09:53 来自手机 | 显示全部楼层
收藏了。            
回帖提示: 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-7-4 04:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表