这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 瑞萨MCU及开发环境FAQs(更新中...)

共8条 1/1 1 跳转至

瑞萨MCU及开发环境FAQs(更新中...)

菜鸟
2014-04-01 14:13:48     打赏

FAQ分类归纳尝试中,同时欢迎总结过类似信息的朋友进行补充,方便查阅。

一、E8A常见错误

1、Flash Development Toolkit V.3 or V.4 环境中,使用E8/E8A调试器时出现提示:“FDT will now update the E8/E8a firmware to a newer version to allow connection to thie device (current Adaptor Software (Level x) version = x.xx.xx.xxx, new version = x.xx.xx.xxx) Click OK to continue”,应该怎么操作?

答:请点击[OK]按钮,接下来会出现提示信息‘在更新过程中不要断开E8/E8A调试器的usb线缆,’负责会损坏调试器。

E8/E8a firmware’是嵌入在E8/E8a调试器里的调试控制软件,对于HEW debugger Flash Development Toolkit 的版本有所不同,所以会在有必要的时候提示更新该固件程序。

2、E8A/E8调试器连接MCU板时出现提示:“Boot failed”“communication timeout error”,接着出现提示:“target missing”“cannot find device driver or connection was cancelled”。

答:(1)检查E8A/E8MCU的连线是否正确

(2)进行E8A/E8自检程序,如果自检通不过那么调试器出故障了,需要更换新的调试器。

(3)否则就是MCU板本身的问题。

3、HEW环境下,当连接E8A调试器时出现提示“Target device driver missing, or connection cancelled”,产生错误的原因是什么?

答:可能是没有安装E8A调试软件。具体步骤是:

(1)打开HEW软件并打开一个workshop工程,如果出“device driver not found;connection cancelled”提示框,点击OK按钮;

(2)打开[Debug]->[debug settings]对话框,Target列表里选择none,点击OK按钮关闭该对话框;

(3)重新打开[Debug]->[debug settings]对话框,如果Targe列表里没有E8A调试软件选项,则表明E8A调试软件没有安装。解决方法就是重新安装E8A调试软件,再次打开HEW并连接调试器。

4、选择好MCU型号后,连接E8A调试器时,出现错误提示如下图所示。

答:提示框的标题是“E8R8C”,E8E8A是不同的,所以需要重新设置[debug]->[debug settings]-[target]选项,应该选择[xxx E8a SYSTEM]

如果没有该选项,那么证明没有安装E8A调试软件,需要安装该软件,然后再设置上面的选项。

4、HEW打开workspace工程时,出现提示信息

Toolchain *****, version ***** is missing from the following project(s) *****
There is no compatible toolchain. Build functionality will not be available.

应该怎么解决?

答:表明HEW的版本比较低,不支持当前toolchain,无法实现该toolchainbuild相关功能,所以需要安装合适的HEW软件版本。

5、连接E8AMCU板时,出现提示信息“Error message: Failed to identify the firmware ID code”,应该怎么解决?

答:E8A启动后,它首先向MCUflash内存中写入固件程序。上面的提示表示固件程序写入失败。

当向MCU供电电源超出flash写入允许电压时会导致固件程序写入失败,所以请确保供电电压符合MCU的电气特性。

6、E8A连接H8系列MCU,执行用户程序时出现下面提示“Stack Pointer in guarded area”,应该怎样消除该提示?
答:出现上面的提示是因为堆栈指针ER7被设定到单片机的保留区域,比如MCU的内存空间是64K,当ER7的值超过64KB时会出现上面的提示。

一般情况下,建立workspace工程时E8A会在RAM存储区里为ER7设定初始值。但是,如果ER7初始值为基数或者超过64KB范围,那么重启MCUER7将变为不定值。所以,需要手工设置ER7的值。

7、E8或者E8A下载程序到MCU时,出现提示“Memory area error. It overlaps the system range.

答:出现该错误的原因是用户程序下载区域与firmware固件程序区域有重叠。可以改变两者中的任意一个,其中修改firmware程序地址是在[emulator setting]->[firmware location]

8、E8或者E8A下载用户程序到MCU板时,出现错误提示“Memory area error. It is outside the effective address range”。

答:有两种情况会导致错误发生:用户程序下载区域与E8A/E8的固件程序有重叠,或者用户程序下载区域超出MCU的有效内存范围oc

(1)map viewer软件可以查看程序具体占用的内存空间范围。

(2)E8A/E8附件文档“E8a/E8 Emulator Additional Dument for User’s Manual”里对E8A/E8程序空间范围有详细说明。

10、HEW环境中,用R8A下载程序到MCU时出现提示“not enough memory”,并且导致下载失败。

答:程序可能下载到MCU内存的保留区域。

(1)请确保section的设置是正确的,通过HEW[view]->[map]查看section设置情况。

2)请确保程序没有下载到MCU内存的保留区域,保留区域的介绍在硬件手册中有详细说明。

11、当用R8A/E8下载程序到MCU板时,出现错误提示“Invalid address value

答:(1)请检查连接E8A时选择的MCU型号是否与电路板MCU实际型号一致,如果不一致会导致上述错误;

  (2)请确保位用户程序分配的空间在MCUROM/RAM允许设置空间范围。                                                                                                                                                                                          3)请确保ROM 空间为 768 KB (R5F3650T, R5F3651F)640 KB (R5F3650R, R5F3651R) M16C/65系列MCU时,PRG2G寄存器的IRON位设置为高电平‘1’。

12、在flash write-only模式,用E8A或者E8下载程序到H8系列MCU时,出现错误警告“program size is exceeds Flash memory size”。

答:出现上述警告表明下载程序的部分数据被存储到internal ROM以外的内存空间,可以改变这部分数据的section(段)或者改动程序代码。

13、用E1/E20/E8/E8A调试器连接M16C或者R8C单片机,当向MCU写入正确的ID码后还是会出现错误提示“ID code error

答:(1)请确保文件夹、文件名称和工程名称都是ASCII码格式,而不要使用中文字符等非法符号。否则会造成上述提示发生,因为这样可能会导致ID码被自动置为全‘0’,ID码输入框里请输入全‘0’。

注:每次输入ID码之前请关闭MCU电源并重启。

(2)如果是M16C系列MCU,请确保NMI引脚通过上拉电阻连至Vcc。否则会引起不可屏蔽中断的产生,导致MCU与调试器之间无法正常通信,会导致上述错误提示的产生。

14、连接E8A并下载程序到flash存储区后,出现“Please Restart or Exit”提示框,点击OK按钮后,出现“Can not use RESET function”提示,并且debug功能不能使用。

答:可能是连接E8A后,在emulator setting选项里选择的是[program flash ]mode,该模式下不支持debug功能,下载完程序后会出现“please restart or exit”提示。

如果想用debug功能,请选择[Erase flash and connect]mode

15、E8A供电下载load module,出现提示“Error erasing flash memory”,并且下载失败。

答:E8A供电是由PC机提供的,所以有时会供电不稳定,所以会flash内存不能被擦除,就会导致该提示产生。所以可以选择用外部电源供电。

16、E8A连接H8系列MCU,执行程序时出现错误提示“Programcounter is odd”和“Stack pointer is odd”。

答:(1)对于PCprogram counter),应该检查是否下载程序到MCU

首先通过[debug]->[download](或者点击workspace窗口[download modules]按钮),下载相应的程序到MCU板,然后执行[Reset CPU]操作。如果下载没完成,即使在程序了设置了reset vector,也不会有任何反应。这是因为程序跑飞后程序指针PC或者堆栈指针SP会置为奇地址,所以一定要确认程序下载成功。

如果依然不能解决问题,那么检查程序中reset vector的设置。

(2)对于H8单片机,没有指定堆栈指针SP的初始值,并且不能被设定为奇数值。另外,E8A/E8运行用户程序时需要设定用户SP,具体是在建立工程时设定SP初值。总之出现“Stack pointer is odd”的原因有两种,一种是SP被人为设定为奇数值,另一种是程序跑飞后SP被置为奇数值,那么即使重启CPU依然不会使SP发生变化。

解决方法是用户程序中为ER7R7寄存器设置相同的初始值,做为SP的初始值。具体步骤是选择HEW环境中的[view]->[CPU]->[register],并设定值。

17、用WDT监控程序过程中,看门狗rWDT刷新无故产生,接着出现communication timeout error提示(调试M16C,M32C系列MCU时)。

答:产生上述错误的原因有两种。

(1)在不需要看门狗定时器的情况下,[debugging of program that uses WDT]的状态为ON

解决方法是设置该状态为OFF,具体打开E8/E8A [emulator setting]->[firm ware assignment]->[debugging of program that uses WDT],选择OFF状态。

(2)如果用E8A/E8对使用看门狗定时器的用户程序进行debug操作,必须选择[debugging of program that uses WDT]的为ON状态。那么请确认在程序的停止状态(即break过程中),没有看门狗溢出事件发生,因为E8A/E8会在break过程中周期性的刷新看门狗。对于M32CM16C系列MCU,‘刷新WDT’与‘开启WDT’是等同的,所以无论用户程序是否开启WDTWDT都会自动开启。

比如下面的用户程序:

Start: (3)

:

:

Loop process (2)

:

Watchdog Timer reset (1)

:

:

MCU重启后,看门狗WDT开启动作应该在用户程序的‘Watchdog Timer reset (1)’处发生。但是,用E8A/E8调试WDT时,在程序的开始‘Start 3)’处WDT开启。所以,当程序中包含循环函数‘Loop process(2)’,如果在(1)执行之前WDT reset发生,那么就会造成“Communication timeout error”。为了避免该事件发生,请在(1)之前添加WDT定时器reset 程序,但只是在debug过程中添加。

 




关键词: 瑞萨     FAQ    

菜鸟
2014-04-01 14:19:48     打赏
2楼

菜鸟
2014-04-03 10:50:23     打赏
3楼
HEW原有project中增加新的debug工具.doc

附注:瑞萨官网中RTSHCTOAN0004-0100.pdf(如何增加一个新的debug工具),按照文档中介绍的方法实现增加debug,但是连接调试时出现错误。


菜鸟
2014-04-04 17:23:32     打赏
4楼

院士
2014-04-04 22:48:22     打赏
5楼

有这么多的错误啊~~



菜鸟
2014-11-17 09:52:14     打赏
6楼

是啊,有些错误是自己真实遇到的,还有的是整理参考资料总结的,应该算是为可能遇到的问题提供一个索引吧!


菜鸟
2014-11-20 22:11:56     打赏
7楼
瑞萨现在官方IDE是CS+吧

菜鸟
2014-12-10 17:33:28     打赏
8楼

瑞萨IDE有PM+ ,  CS+ , HEW等,其中PM+已经不再更新。CS+是最新的开发环境了,咱们可以根据不同的MCU选择合适的开发环境。CS+我也刚开始用,所以关于CS+的笔记后续会总结一些,遇到问题咱们一起探讨呀!


共8条 1/1 1 跳转至

回复

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