大海捞针--GHS环境下瑞萨RH850芯片定位程序跑飞原因的方法

错误现象如上图。

由于Ghs不像劳特巴赫那样能精准的记录上下文,所以面对这种没有上下文的unused_isr,线索太少,如大海捞针,很难定位错误原因!

首先,查出导致进入该_unused_isr的上文,有2个方法:

方法一,改造启动文件,在启动文件中每一个jr  __unused_isr的前面记一个数存入r6内核寄存器,作为判断标识---注意打断点的方法在此时是无效的,因为跑飞入口太多,断点不够用!

      

方法二,查看内核寄存器EIIC和FEIC值,然后查表。

          

如果是EI故障,则参考RH850 U2A HDUM Rev.1.20的附件表格《Interrupt_table.xlsx》

结合图表可知,本次故障是MAE内存对齐错误。

然后,查看通用寄存器的EIPC和FEPC的值,FEPC对应函数为rfd_fv0_SingleWrite(),在该函数执行时候产生了MAE故障。

再次,查看MEA寄存器的值,可在Map文件中找到这个MEA值对应变量/函数。本次重点查看MEA的值,它在map文件中对应:

该Hal_FlsSrcBuffer为U8类型,将其改为u32类型,则故障消失。

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值