阴道炎有什么症状| 小便尿不出来什么原因| 精液发红是什么原因| 多元是什么意思| 尿路感染吃什么药好得快| 孕妇低血压什么补最快| 细胞核由什么组成| 2月8日什么星座| 空调开什么模式最凉快| 千里江陵是什么意思| 孩子记忆力差是什么原因| 单独是什么意思| 湿气重吃什么好| 68岁属什么| 色令智昏是什么意思| 孔子的父亲叫什么| amp是什么意思| 疏肝理气喝什么茶| 脾与什么相表里| 钠低是什么原因| 艾拉是什么药| 骨折吃什么好| 多吃菠萝有什么好处| 宫腔内偏强回声是什么意思| 下午三点到五点是什么时辰| 姨妈安全期是什么时候| Ca是什么| 护照拍照穿什么衣服| 清炖排骨汤放什么调料| 吃什么护肝| 桃子不能和什么食物一起吃| 华法林是什么药| 大便拉不出来什么原因| 中央组织部部长什么级别| 天天睡觉做梦是什么原因| 百年老枞属于什么茶| 总是失眠是什么原因| 什么东西补钙最好最快| 不修边幅是什么意思| 胃反流是什么原因引起的| 养胃吃什么水果| 内分泌科看什么病| 核医学科是检查什么的| 三叉戟是什么意思| dw是什么| 铁观音是什么茶类| 洋红色是什么颜色| 韬的意思是什么| 蔑视是什么意思| 牛肉馅配什么菜包饺子好吃| 割包皮挂什么科室| 减肥不能吃什么水果| 闷骚男是什么意思| 经常发烧是什么原因| 嗓子干疼吃什么药| 电磁炉滴滴响不加热是什么原因| 达喜是什么药| 误人子弟什么意思| jimmy是什么意思| 栀子有什么功效| 耳顺是什么意思| 什么园| 包含是什么意思| 1年是什么朝代| 脸上长痣是什么原因造成的| 报销凭证是什么| 中药一剂是什么意思| 结肠炎是什么原因引起的| 镉是什么东西| 心血管疾病做什么检查| 强直性脊柱炎是什么病| 什么是泡沫尿| 命运多折 什么生肖| 非虫念什么| 朋友圈提到了我是什么意思| 独什么心什么| 颈椎退变是什么意思| 痞闷什么意思| 尿频是什么原因| 123是什么意思| 杨树林是什么品牌| 陀飞轮是什么意思| 经血逆流的症状是什么| 树挪死人挪活是什么意思| 圣诞节是什么时候| 缺钾有什么症状| 授课是什么意思| 斗牛为什么用红色的布| 啤酒加生鸡蛋一起喝有什么效果| 肺气囊是什么病| 子婴是秦始皇什么人| 虱目鱼在大陆叫什么| 钱学森发明了什么| 纯爱是什么意思| 世事无常什么意思| 女人梦见虫子什么预兆| 大云是什么烟| 同舟共济什么意思| 飞亚达手表什么档次| 起酥油是什么东西| bkg是什么意思| 泉中水命是什么意思| 病毒感染吃什么消炎药| 蔚字五行属什么| 为什么女人阴唇会变大| 不义之财是什么意思| 绍兴酒是什么酒| 吃洋葱对身体有什么好处| 金陵十二钗是什么意思| bmi指数是什么| 什么鱼没有刺| 牛油果有什么功效| 男人为什么会晨勃| 为什么同房会有刺痛感| 洗头什么时间洗最好| 桃李满天下是什么意思| 阿司匹林肠溶片治什么病| 医院康复科是干什么的| 血常规一般查什么病| 陶字五行属什么| 风吹动窗吹动夜声响是什么歌| 去拉萨需要准备什么| 牙合是什么字| 阑尾在什么位置| 血糖高吃什么水果降糖| 内外兼修是什么意思| 晕轮效应是什么意思| 同人文什么意思| 荔枝不能与什么一起吃| 准备好了吗时刻准备着是什么歌| 仙人是什么生肖| 马赛克是什么| 年轻人为什么会低血压| 痛风忌吃什么| 炀是什么意思| 得宫颈癌的前兆是什么| 房产证和土地证有什么区别| 231是什么意思| 户口是什么意思| 1979年属什么生肖| 瘘管是什么症状| 济南有什么景点| 吃什么补孕酮最快| 液体套是什么| 消炎药不能和什么一起吃| 做梦梦到水是什么征兆| 锁阳泡酒有什么功效| 景深是什么意思| 芙蓉是什么花| 暗代表什么生肖| 1985年属牛是什么命| 评审是什么意思| 62年的虎是什么命| 乌冬面是什么做的| nl是什么单位| 意大利买什么包便宜| 吃什么拉什么是什么原因| 喝咖啡困倦是什么原因| 间歇性跛行是什么意思| 天德是什么意思| 梵天是什么意思| 牙龈有点发黑是什么原因| 月经量少吃什么排淤血| 5是什么生肖| boss是什么意思| 动脉硬化用什么药好| 婆什么起舞| 羊肉不能和什么一起吃| 列巴是什么| 洗涤心灵是什么意思| 胃出血有什么症状| 268数字代表什么意思| 什么猫最贵| 弱水三千只取一瓢什么意思| 公元500年是什么朝代| 马刺是什么意思| 处女座是什么星象| 什么是roi| 黄芩有什么功效| 吃豆腐有什么好处| sey什么意思| 转述句什么意思| 穿山甲说了什么| 眩光是什么意思| 皮肤干燥是什么原因| 蚂蚁上树是什么菜| 成语是什么意思| 内热外寒感冒用什么药| 阿修罗是什么意思| 戴银饰变黑是什么原因| 五福是什么| 梦见生男孩是什么征兆| 肚子胀挂什么科| 神经衰弱是什么| skll什么牌子| 检查怀没怀孕挂什么科| 举重若轻什么意思| 粉底液是干什么用的| 一九九二年属什么生肖| 恐龙灭绝的原因是什么| 城市的夜晚霓虹灯璀璨是什么歌| 淋巴结肿大看什么科室最好| 唐氏综合征是什么病| 一月十号是什么星座| 电视黑屏是什么原因| 消炎吃什么药| 免疫治疗是什么意思| 董明珠什么星座| wi-fi是什么意思| 蓝瘦香菇是什么意思| 鱼鳞云有什么预兆| 一边脸大一边脸小是什么原因| 医学上ca是什么意思| 脂肪瘤是什么原因引起的| 婴儿吃手是什么原因| 万箭穿心是什么意思| 颈椎病应该挂什么科| 肌电图主要检查什么病| 桃子是什么季节的水果| 月桂酰两性基乙酸钠是什么| 心肝血虚吃什么中成药| 药流后需要注意什么| 拍大腿内侧有什么好处| 伤口不愈合用什么药| 治烫伤最好的药膏是什么| 人中长痘痘是什么原因| 肚脐右边是什么器官| 口腔溃疡喝什么饮料| 生吃蛇胆有什么功效| 旗舰机是什么意思| 酩酊是什么意思| 苍鹰是什么意思| 舌根发黄是什么原因造成的| 流鼻血吃什么药效果好| 芒果什么品种最好吃| 脚掌发麻是什么原因| 腺肌症不治疗会导致什么结果| 脖子长痘痘是因为什么原因| 男人遗精是什么原因造成的| 卡蒂罗属于什么档次| 得了幽门螺杆菌是什么症状| 胃镜挂什么科| 邹的左边读什么| 照护保险是什么| 产复欣颗粒什么时候吃| 肝郁气滞吃什么中成药| 低血压吃什么好的最快女性| 国五行属什么| 早上起来心慌是什么原因| 脉弱是什么原因导致的| 什么食物补气血| 西红柿和什么榨汁减肥| 什么东西最伤肾| 12月1日是什么日子| 均码是什么意思| 做什么饭简单又好吃| 胃炎不能吃什么食物| 黄色是什么颜色组成的| 月经为什么叫大姨妈| 鞠婧祎什么学历| 倒钩是什么意思| omega是什么意思| 野生蜂蜜有什么好处和作用| 忘情水是什么意思| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 活动中心 ? 板卡试用 ? 【分享开发笔记,赚取电动螺丝刀】IAR环境下使用cmback-trace无法从查

共2条 1/1 1 跳转至

【分享开发笔记,赚取电动螺丝刀】IAR环境下使用cmback-trace无法从查看函数调用栈解决方法

高工
2025-08-04 11:11:25   被打赏 35 分(兑奖)     打赏
百度   (实习编译:卓莉莹审稿:刘洋)

【问题描述】

本地移植适配的Cmback-tarce工具,适配验证过程在此贴中有介绍(RA8 Freertos 使用 CmBacktrace 调试死机问题),我们在IAR 的Debug 仿真时在hardfault 函数中设置断点,触发hardfault 时在还 hardfault 中断函数中停下,此时通过IAR 去查看函数的调用栈路径,只有进入异常时的汇编入口的函数没有之前触发异常的函数信息。

image.png

虽然我们还是可以使用Cmback-tarce 的打印信息回溯出异常触发的时机,不过我们在调试环境下还是在IAR下能直接看出来更方便调查问题。

【原因确认】

我们在IDE中其他中断中下断点,是能够在调用栈中查看到中断打断应用程序的位置,为什么在hardfault中断就不能显示了呢。

image.png

上述是我们在Uart 接收中断中下的断点,这时就能看到中断在ilde中打断了程序的运行跳转到Dma 串口接收的的中断栈中。

同样是中断为什么有的中断触发能显示出触发异常前的调用关系,为啥有的就不行呢?带着这个疑问,我们把重点放在了两个函数的实现上,查看代码发现Cmback-tarce 函数的hardfault 的中断处理函数的实现试用汇编实现的对应代码如下:

image.png

现在怀疑方向有了,这个函数的实现也比较简单,我们把这个函数变成用C代码实现是不是就能显示出hardfault 前的完整调用关系。

上述代码中只用了几条汇编我们如何将上述汇编代码转换成C函数,我们可以试用内嵌汇编,查看IAR 的开发手册,从中可以知道IAR 的C内嵌汇编写法和GNU类似。

image.png

image.png

对于GCC的内嵌汇编的写法如下帖子有记录内嵌汇编的规则:

【RISC-V GCC 内嵌汇编使用】

【ARM GCC内嵌汇编使用】

【功能修改】

按照上面的描述,我们按照cmback-trace中hardfault 异常的汇编代码修改为C内嵌汇编的形式实现,对应代码实现如下:

/**
  * @brief This function handles HardFault.
  */
__attribute__((naked))
void HardFault_Handler(void)
{
  __asm volatile(
      "mov r0, lr \n"
      "mov r1, sp \n"
      "bl  cm_backtrace_fault \n"
      "b . \n");
}

【功能验证】

将hardfault 中断入口修改为C代码的内嵌汇编实现后在次在hardfault  中断入口函数添加断点后就可以查看到hardfault 触发的调用路径了。

image.png

在触发异常的函数中可以看到触发异常的点,及异常原因为非对齐访问造成的死机。

image.png

至此已经解决我们的问题了,IAR cm-backtrace 库下已经可以查看到调用栈了。




工程师
2025-08-04 19:06:14     打赏
2楼

这个技巧不错。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
带状疱疹看什么科 梦见被鱼咬是什么意思 神器积分换什么最划算 什么是扦插 鼻子出汗多是什么原因
客厅挂钟放在什么位置好 锁骨属于什么骨 束手无策是什么意思 星期五右眼皮跳是什么预兆 头痛应该挂什么科
头晕目眩是什么原因 一直耳鸣是什么原因引起的 生僻字什么意思 kallas是什么牌子 冒失是什么意思
快走对身体有什么好处 吃什么食物可以降低胆固醇 acer是什么牌子的电脑 刘备属相是什么生肖 舌炎是什么原因引起的怎样治疗
梦见大蜘蛛是什么预兆hcv8jop9ns2r.cn 牙龈起包是什么原因kuyehao.com 为什么会手抖hcv8jop6ns1r.cn 吃什么长胎hcv9jop1ns8r.cn 奶豆腐是什么hcv8jop2ns0r.cn
聚字五行属什么hcv9jop3ns0r.cn 鞋油自然色是什么颜色xinjiangjialails.com 怀孕不可以吃什么东西hcv9jop3ns1r.cn 什么的大象xinjiangjialails.com 什么是梅尼埃综合症hcv9jop5ns4r.cn
7月11日什么星座hcv8jop0ns3r.cn 经常放屁吃什么药hcv7jop6ns6r.cn 双氧水又叫什么名字hcv8jop2ns9r.cn diamond是什么牌子hcv9jop8ns1r.cn 狗吃什么药会立马就死hcv8jop4ns9r.cn
血热吃什么hcv8jop0ns8r.cn 身上没力气没劲是什么原因hcv8jop3ns0r.cn 脚气什么症状clwhiglsz.com 蛋白粉吃多了有什么危害hcv9jop6ns2r.cn 一什么无余hcv9jop6ns6r.cn
百度