【经验】RX系列MCU停止仿真后目标系统没有反应的原因和解决措施

2020-01-14 世强

现在由于MCU的工艺改变,所有的MCU均支持调试仿真,大大方便了和缩短了工程师的调试验证周期。但程序终归是要进行脱机运行,所以仿真器也只能是先模拟调试产品运行状态,当功能实现后,需要去掉仿真器来进行脱机运行以验证产品在脱机情况下的执行是否与调试及预期一样。


最近笔者碰到一个问题,用户使用瑞萨电子RX系列MCU,使用调试器连接仿真的时候一切正常,停止仿真后,目标系统却一动不动,没有反应。


RX系列产品是瑞萨电子自有内核的32bit产品,基于瑞萨所积累的知识技术,采用了最新技术,实现CISC和RISC的完美融合,哈佛总线结构,可以同时读取指令和访问数据,增强了流水线的新年功能,实现单周期指令操作。可以满足用户现在和未来的需求,可实现了“更高性能”、“更高的编码效率”“更低功耗”及“更高的集成度”。


那么,由此可知,RX属于自有内核,使用的是专用的自有协议的仿真调试器,当发现停止仿真之后系统未运行时,笔者怀疑是仿真时候程序未下载进去,于是,使用了自有的flash编程软件RFP将mot文件下载至MCU内,重新上电,还是未执行,难道是程序没下载对?通过RFP进行checksum和verify两种校验,均正常。


接着笔者开始找硬件问题,首先确认电源供电正常,其次测量RESET引脚和MODE引脚,发现电平为低。但是原理图上命名有上拉电阻,而电源供电也正常,为什么电平不对?检查接口电路后发现,原因是用户并未将仿真器移除。虽然停止仿真,但用户未拔开仿真器接口线,导致仿真器内部电路将RESET和MODE引脚钳位而使程序无法正常运行。


可能会有读者出现疑问:为什么ARM可以不用移除仿真器呢?


ARM使用的是JTAG接口,仿真器与MCU之间建立连接进入调试模式与自有内核MCU所定义及进入调试模式的协议及时序不同,所以,这两种方式不能一概而论。


在彻底移除仿真器后,程序运行,执行一切正常。所以,在调试及脱机时候,针对不同的环境及不同的工具,需要了解清楚其执行条件及使用习惯,否则,小小的问题也会阻碍设计进程。


  • +1 赞 0
  • 收藏
  • 评论 0

相关服务

相关推荐

本文由落叶萧萧提供,版权归世强元件电商所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强元件电商”。

评论(0

   |   

提交评论

全部评论

暂无评论

联系我们

400-887-3266(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

搞研发 找元件
下载世强硬创电商APP