OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 转载:关于M16C的仿真器和调试方法

共5条 1/1 1 跳转至

转载:关于M16C的仿真器和调试方法

菜鸟
2009-12-17 15:54:54    评分
文章从根本介绍仿真的原理,觉得不错,所以转载过来给大家分享下。
强烈要求版主给我加分,加精。

关于调试方法的一般概念就不讲了,什么 Emulator, Simulator, Rom-Monitor,JTAG等等。


首先建立一个认识: M16C R8, M32也好是一款CISC结构MCU系列,类似于飞思卡尔的S12系列一样的。不过,两者最大的一个区别是S12有支持似乎是全硬件仿真的BDM调试方式
(BDM的调试原理没仔细研究过),而m16c上是没有类似于此或JTAG的硬件调试模块。在玩飞思卡尔时,觉得有个硬件调试器(BDM调试模块),真爽啊。那么m16c的调试方式是怎样的呢?一种就是E8/E8A的所谓硬件调试器,另外一种就是Rom-Monitor的方式, 其实两者的原理是一样的(这是我分析的)。由于m16c没有专用的硬件调试模块,所以应该不可能像用JTAG,BDM以及其他的方式实现在线的调试。

m16c的主要调试原理类似于我们PC机上的调试方式,即有一段专门的程序接管了程序的运行,并把调试结果发送给上位机。在嵌入式式领域,这种方式称之为Rom-Monitor。如果有用过m16c的Rom-monitor进行调试的童鞋可能会清楚, 如果是一块什么新的MCU,你要开始调试的话,要先下载一个叫mon_uart.mot的文件下载到MCU中,然后才能用KD30或者ForuartUSB的调试平台进行调试,这个调试是通过串口进行的。在调试过程中你可能会被告知, 有一个串口中断向量你是不能用的。那个mon_uart.mot其实就是监控程序,它控制着整个调试过程,包括接受上位机传来的.x30文件,执行上位机传来的指令,并把结果返回给上位机。那个不能使用的串口中断就是用于监控程序和上位机进行通信的。

为什么说E8/E8A的原理和rom-monitor的是一致的呢?当谈我没具体用过E8/E8A, 不过请仔细看一下E8/E8A的电路图,你会发现它也占用了一个串口,加上CPU模式选择信号以及其他。如果截收一下使用rom-monitor时上位机和MCU之间以及使用E8/E8A时上位机和MCU之间的通信数据,应该会发现两者是惊人的相似(我只做过rom-monitor的例子)。E8/E8A可能功能更强大,自动化程度更高一些,看起来像硬件仿真,但实质上应该和rom-monitor一样, 只不过可能rom-monitor在E8/E8A上有一个备份,需要时把这个备份下到MCU中去。

邵贝贝的一本关于S12的书中介绍了这种Rom-monitor的调试方式,并提供了在s12上的实现(我估计是改良自飞思卡尔所提供的s12的ROM-monitor的例子)。正如邵所说,其实任何MCU或者CPU都可以采用rom-monitor的方式进行调试,例如ARM中Angel, 这种调试方式其实有点类似于GDB。然而为什么rom-monitor不是很常用呢,一个关键就是没有上位机的调试平台与之配套,而且是要可以和IDE整合在一起,所幸HEW中可以实现。

总结一下: m16c  m32 R8 都可以用kd30 或者是Foruartusb调试,只要有对应rom-monitor。如果有可能的话,到时分享几个rom-monitor, 分别针对m16c m32 r8.
另外,瑞萨的另一个铲平h8也可以这样搞, 我记得有一个h8 monitor的实现, 对应的调试平台就不知道了,可能的话可以作为一个小小的开源项目,尝试做做。


想知道文章出处以及作者介绍,回复可见。
——回复可见内容——



关键词: 转载     关于     仿真器     调试     方法    

菜鸟
2009-12-22 11:44:07    评分
2楼

详细的说明书有吗?


菜鸟
2009-12-24 16:27:47    评分
3楼

在瑞萨的中文网站上有具体的DATASHEET.很详细.


菜鸟
2011-07-12 13:23:06    评分
4楼

还是没看懂啊~


菜鸟
2013-04-08 10:15:02    评分
5楼

感兴趣


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]