4.2.6 使用软件中断的注意事项
(片上SRAM和闪存通用)
(1)在安全区域设置软件断点
不要在安全MPU指定的安全区域中设置软件断点。如果尝试这样做,指令代码可能会在中断释放时恢复为不正确的数据。
(2)读取已设置软件断点的地址
不要读取用户程序设置了软件断点的地址,这样做可能会导致程序以与正常状态不同的方式运行。
(3)在[内存]视图中查看内存
在执行用户程序期间,如果仿真器调试器的[Memory]视图中显示了设置了软件断点的内存范围,则显示的值(BKPT指令代码)与实际程序数据中的值不同。
(4)在仿真器调试器断开连接时删除软件断点
要断开仿真器调试器的连接时,请删除已设置的所有软件断点。此时,复位CPU,因为仿真器调试器肯定会重新编程闪存。
4.2.7 关于调试器占用的外围I/O寄存器的说明
(1)调试器占用的外围I/O寄存器
仿真器调试器在调试期间占用以下外围I/O寄存器。不要更改这些寄存器的值,因为这样做之后可能无法继续调试。
— 调试停止控制寄存(DBGSTOPCR)
— 微跟踪缓冲区(MTB)(SFR区域)
— 系统控制OCD控制寄存器(SYOCDCR)
4.2.8 使用MTB跟踪功能的注意事项
当使用MTB跟踪功能时,跟踪记录区域是从片上SRAM开始的地址为仿真器调试器选择的记录跟踪的大小。当用户程序使用片上SRAM时,不要使用跟踪记录区域。有关片上 SRAM启动地址的详细信息,请参阅各MCU的硬件手册。
如果仿真器调试器的跟踪记录区域的大小已更改,则链接器脚本也必须更改。
4.2.9 使用ETB跟踪功能的注意事项
以下介绍了具有Cortex-M33内核的MCU的ETB跟踪功能的注意事项。
(1)当分步执行分支指令时,跟踪结果不正确。
在指令的步骤执行之后,显示的地址不是分支目标的地址,而是分支源的地址。
(2)数据比较事件作为跟踪事件的操作不正常。
即使将数据比较事件设置为跟踪事件,也不会比较数据,但仅在访问位置时满足事件条件。
(3)如果在程序执行期间应用重置,则不会获取跟踪信息。
(4)如果出现以下任何异常,则跟踪结果可能不正确。
— 硬故障
— 内存管理
— 总线故障
— 调试监视器
— PendSV
— SysTick
4.2.10 低功率模式注意事项
(1)在SSTBY或SNOOZE模式下调试
在SSTBY或SNOOZE模式下,仿真器调试器无法访问MCU 的系统总线。在执行用户程序时或在MCU的模式转换期间,无法设置和查看存储器或外围I/O寄存器以及设置和更改断点。
(2)在SSTBY或SNOOZE模式下强制停止程序
当程序在SSTBY或SNOOZE模式下强制停止时,请执行以下操作之一。每次操作都会导致从SSTBY或SNOOZE模式释放。
— 使用仿真器调试器的[Reset]使MCU停止用户程序并转到重置矢量指示的位置。
— 使用仿真器调试器的[Suspend]可在导致模式转换的WFE 指令之后的下一条指令处停止MCU。当要使用[Suspend]时,对于仿真器调试器的[Connection Settings]选项卡页上的[Connection],请为[Low Power Handling]选择[Yes]。
图4.14 [Low Power Handling]设置
即使为[Low Power Handling]选择了[Yes],也不可能在包含 TrustZone®功能的设备(例如RA6M4设备)上以SSTBY或 SNOOZE模式强制停止程序。
(3)DSTBY模式下的调试不支持调试已进入DSTBY的程序。
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
未完待续
推荐阅读
基于RA8D1的MJPEG Streamer实现
RA8 Security Features之DLM切换(1)
如何在RA8D1 MIPI LCD上显示任意内容