4.2 片上调试
本节描述了使用EZ-CUBE3进行片上调试的系统配置,启动/关闭顺序和调试中的若干注意事项。
4.2.1 调试功能
表4.2列出了以RA微控制器作为目标设备,进行调试时的调试功能。
表4.2 调试功能
4.2.2 e2studio环境下
调试软件的设置
4.2.3.1 打开或创建工程
(1)打开e2studio开发环境。
(2)打开已生成的RA工程或者创建RA新工程。
打开已生成的工程。
创建新工程。
(3)编译代码
点击“Build”按钮,对代码进行编译。编译成功后,代码准备结束。
4.2.3.2 硬件连接仿真器与目标板
(1)EZ-CUBE3仿真器开关设置。
(2)系统连接
4.2.3.3 e2studio环境下设置调试工具
(1)在“调试配置”中选择“E2 Lite(ARM)”调试工具。
(2)在“Connection Settings”“Power Target From The Emulator.(MAX 200mA)”务必选择为“No”。
4.2.3.4 e2studio环境下下载和调试程序
(1)点击“Launch in ‘Debug’ mode”按钮。
(2)电脑与仿真器及目标板建立正确连接并正常下载程序后,可以调试用户代码。
4.2.3 调试时的注意事项
(1)RESET状态
在[Connection Settings]选项卡页的[Connection]下,确保[Hold reset during connect]选择[Yes]。
当选择[Yes]时,在连接到仿真器调试器期间,仿真器将保持 MCU的RES#引脚上的低电平输出,并将MCU置于OCD模式。然而,为了启动MCU的内置调试电路的操作,仿真器在连接时释放复位约50毫秒,用户程序在此期间自动运行。
图4.6 [Hold reset during connect]的设置
(2)Startup模式
连接仿真器调试器后,处理用户系统上的引脚,使MCU的启动模式为单芯片模式。
在单芯片模式下,MD引脚处于高电平。在SCI/USB引导模式下,无法正确连接仿真器调试器。
(3)重写ID代码后的调试
如果ID代码(OSIS寄存器)已被重写,请输入新的ID代码。
这里,要输入的ID代码是指要在[Connection Settings]选项卡页的[Connection]下的[ID Code (Bytes)]中输入的值。
图4.7 [ID Code(Bytes)]的设置
包含DLM设施的设备,如RA6M4组的设备,不具有ID码认证功能。
(4)输入ID代码的ALeRASE命令
如果在[ConnectionSettings]选项卡页的[Connection]下的[ID Code(Bytes)]中输入ALeRASE命令(FFFFFFFFFFFFFFFFFF45534152654C41),则在连接仿真器调试器时,代码闪存和选项设置内存将被擦除。有关输入ALeRASE命令的详细信息,请参阅e2studio帮助系统中的E2/E2 Lite(RA)Connection Settings。有关ALeRASE命令可用的条件,请参阅所用MCU的硬件手册。如果输入ALeRASE命令,则仿真器调试器已连接,而该命令在MCU上不可用,则会显示错误消息“Failed to erase all flash memory by the ID for erase all flash memory.”,连接过程将暂停。
由于RA6M4组等设备具有DLM设施,因此没有ID码认证,也无法使用ALeRASE命令。
(5)连接速度
仿真器与目标板的连接速度在以下上限值内指定。
—SWD(E2 Lite):6000kHz
图4.8 设置连接速度
当选择“Auto”时,将自动设置连接的最大速度。
4.2.4 关于涉及闪存重新编程的
调试操作的注意事项
“涉及闪存重新编程的调试操作”是指仿真器调试器的以下操作。
• 将数据下载到闪存
• 在闪存中使用软件中断功能
(a)设置和取消断点
(b)从断点执行或单步执行程序
(c)从设置中断的状态使用“Run to Line”功能
(1)闪存重新编程程序
由于仿真器调试器启用涉及闪存重新编程的调试操作,仿真器将用于重新编程闪存的程序写入片上SRAM并执行该程序以重新编程闪存。闪存重新编程后,仿真器调试器将片上 SRAM恢复到初始状态。
(2)用于重新编程闪存的程序分配目标
默认情况下,用于重新编程闪存的程序从SRAM0区域开始的地址(或对于不包括SRAM0区的设备,SRAMHS区域开始的位置)分配到5-KB的空间。如果由于安全设置或 DMAC/DTC传输注而导致默认分配目标不可用,请在仿真器调试器的[Debug Tool settings]选项卡页上的[Flash]下,输入片上RAM中可用空间的起始地址,单位为1000h字节。
注:即使在break期间,DMAC或DTC仍将继续运行。注意DMAC或DTC的传输源或目的地不在要分配程序的工作 RAM的地址范围内。
图4.9 [Work RAM Start Address]的设置
当设备包含TrustZone®功能(例如,RA6M4),且仿真器调试器连接到具有调试访问级别DBG1的设备时,请勿部署用于重新编程闪存的程序。
(3)在重新编程闪存的程序执行期间中断和重置
当正在执行重新编程闪存的程序时,除不可屏蔽中断之外的中断将被屏蔽。此外,为了正确执行用于重新编程闪存的程序,在执行程序之前设置的所有中断源标志都被清除。
如果发生不可屏蔽中断,仿真器将继续运行程序以重新编程闪存。如果在执行重新编程闪存的程序时发生reset,仿真器将显示错误消息并停止处理。由于这样做可能会损坏闪存的内容,因此在程序运行时不要执行reset。
(4)将数据下载到闪存的条件
当MCU满足以下所有条件时,可以继续将数据下载到闪存。
(a)MCU的代码闪存处于读取模式。
(b)MCU的系统时钟(ICLK)频率为1MHz或更高
注:对于仿真器调试器的[Connection Settings]选项卡页中的[Clock],当[Permit Clock Source change on writing on-chip Flash Memory]选择[Yes]时,可以排除条件(b)。
图4.10 设置[写入片上闪存时允许时钟源更改]
如果在不满足任何条件的情况下将数据下载到闪存,仿真器将显示错误消息并停止处理。在这种情况下,在CPU复位后重新开始将数据下载到闪存,或在检查其设置后重新连接仿真器调试器。
(5)将数据下载到安全区域
当将数据下载到为安全MPU指定的安全区域时,在仿真器调试器的[Debug Tool Settings]选项卡页面中,为[Flash]选择[Yes],为[Erase on-chip program Flash before download]。
图4.11 [Erase on-chip program flash before download]]
的设置
(6)访问窗口功能
当要使用MCU的访问窗口功能时,只能在指定的访问区域重新编程闪存。
(7)在闪存中使用软件中断的条件
当MCU满足以下所有条件时,将启用闪存的软件中断功能。
(a)MCU的代码闪存处于读取模式。
(b)MCU的系统时钟(ICLK)频率为1MHz或更高
(c)对于[Debug Tool Settings]选项卡页面中的[Break],[Use Flash Breakpoints]选择了[Yes]。
图4.12 设置[Use Flash Breakpoints]
注:对于仿真器调试器的[Connection Settings]选项卡页中的[Clock],当[Permit Clock Source change on writing on-chip Flash Memory]选择[Yes]时,可以排除条件(b)。
图4.13 设置[写入片上闪存时允许时钟源更改]
如果在不满足任何条件的情况下使用软件中断功能,仿真器将显示错误消息。在这种情况下,使用硬件中断或确认满足上述条件(a)至(c)。
(8)闪存I/O寄存器
在涉及闪存重新编程的调试操作之后,仿真器调试器将重写闪存I/O寄存器的值。
4.2.5 在片上SRAM中
使用软件中断的注意事项
(1)用户程序覆盖软件断点
如果软件断点被用户程序覆盖,则即使程序运行通过地址,程序也不会停止。在这种情况下,在目标片上SRAM被程序重写后设置软件断点。
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
1
END
1
推荐阅读
基于RA8D1的MJPEG Streamer实现
RA8 Security Features之DLM切换(1)
如何在RA8D1 MIPI LCD上显示任意内容