2.2.4保留用户资源和设置安全ID
用户必须做好下面的资源保留设置以保证EZ-CUBE3和目标设备之间的通信以及实现每一个调试功能。使用Renesas Electronics的编译器,这些都可以通过CS+/e2studio选项设置。请参考下面的描述并设置,详细内容请查阅CS+/e2 studio相关用户手册。
(a)设置安全ID
这个区域用来存放安全设置以防无认证的外部设备读取Flash存储器。安全ID存储在内部flash memory的0xC4~0xCD地址上。安全ID功能就像启动调试器的密码。只有在调试器启动时输入的安全ID和存放在这个区域的安全ID匹配时,调试器才能正常启动。如果ID码不匹配,调试器根据片上调试选项字节区域设置的值对目标设备进行操作(参考表2.4)。
[如何设置安全ID]
有两种方式设置安全ID。如果方式(1)和(2)都被执行,则方式(2)的设置优先。
(1)在用户程序地址0xC4~0xCD区域上设置安全ID。
(2)在构建工具通用选项中设置安全ID(以CS+开发环境为例)。
(1)用户程序在地址0xC4~0xCD上设置
举例,安全ID设置为“0123456789ABCDEF1234”(不区分大小写)。
表2.3安全ID
(2)CS+设置
在CC-RL编译器属性的通用选项“Device”中设置安全ID如图2.8。
图2.8 安全ID设置样例
[如何在调试器启动进行安全ID验证]
当调试器连接到设备时,必须由调试工具属性的连接设置中指定安全ID。(默认安全ID在构建工具属性设置。)
(b)设置片上调试选项字节
这个区域用来存放安全设置以防无认证的外部设备读取Flash存储器。调试器根据设置的值对目标设备进行操作,如下表所示:
表2.4片上调试选项字节设置和操作
[如何设置]
有两种方式设置选项字节。如果方式(1)和(2)都被执行,则方式(2)的设置优先。
(1)在用户程序地址0xC3设置在线调试选项字节。
(2)在构建工具通用选项中设置在线调试选项字节(以 CS+开发环境为例)。
如图2.9中显示了在CS+中的[Link Options]选项卡设置。
例:把控制值设置为0x85。
图2.9片上调试选项字节样例
(c)调试用区域的保留
图2.10中的阴影部分是存放调试监控程序区域,所以用户程序或数据不能存放在这些空间。这些空间必须保证不被用户程序使用。
另外,这些区域也不能被用户程序重写。
调试保留区域内容说明,参见(1)和(2)。
图2.10分配给调试监控程序的内存空间
注1:使用调试器对MCU进行调试的过程中,用户程序的复位向量会被重写,指向监控程序区。
注2:当调试flash自编程模式时,该区域将为12字节。
(1)调试监控程序区域
这是一个放置调试监控程序的区域。监控程序为调试通信接口和CPU的运行或者断点做初始化操作。用户程序或数据不能存放在片上调试选项字节周边的22个字节的区域以及内部ROM底端的512字节区域内。
另外,用户程序的复位向量会被重写并指向放置监控程序的地址。
[如何预留区域]
如果用户程序不使用这个区域,可以不进行预留。
为了避免在调试时出现问题,建议提前预留区域。
如图2.11所示,使用CS+,在[Link Options]选项卡的“Device”处进行设置。
图2.11预留调试监控程序区域
(2)调试用堆栈区域
这个区域需要4个字节作为调试的堆栈区域。因为这个区域分配在紧邻堆栈区域之前,所以这个区域的地址根据堆栈的增加和减少而有所改变。就是说,在使用的堆栈区域之外有4个额外的字节。
图2.12说明了堆栈区域增加时的情况,图中的内部RAM从 0xFCF00开始。
图2.12调试所用的堆栈地址的变化
[如何预留区域]
通过在用户程序使用堆栈之外再多定义4个字节来设置堆栈指针。确保堆栈指针不会超过内部高速RAM的起始地址。
备注:关于如何预留自编程的堆栈区域请参考自编程手册。
2.2.5调试时的注意事项
本节介绍使用RL78微控制器的片上调试功能时需要注意的事项。
请仔细阅读以下事项以正确使用EZ-CUBE3。
(1)处理用于调试的设备
不要在批量生产的产品上安装曾用于调试的设备,因为 Flash存储器在调试过程中被多次重写,Flash存储器的重写次数无法保证。另外,不要把调试监控程序写入批量生产的产品。
(2)Flash自编程
如果存放调试监控程序的区域被Flash自编程重写,调试器就不能正常操作。这个注意事项对这个区域的引导交换操作也适用。
(3)复位后的操作
在外部复位或内部复位后,监控程序会进行调试初始化处理。因此,从产生复位到用户程序执行的时间和实际设备的操作有所不同。
(4)调试后检查设备的运行
设备下载模块文件进行在线调试后,在没有EZ-CUBE3时不能进行设备运行的检查。
调试的设备包含片上调试的特殊程序,所以它与实际操作不同。
(5)片上调试时功耗
因为在片上调试时,设备的片上调试电路处在运行状态,所以会增加器件的功耗。
评估器件的功耗时,请不要连接调试器。
(6)片上调试选项字节设置(地址C3H)
片上调试选项字节设置可被调试器任意改写。
(7)运行电压不满足Flash写入的要求时
如果片上调试时进行了如下步骤,调试器会输出一个错误和忽略该操作。因为这些操作包括了flash memory的重写。
<1>内部flash memory写入
<2>设置或取消软件断点
<3>启动执行软件断点
<4>软件断点进行单步执行
<5>执行 Step Over,Return Out
<6>Come Here
<7>指定、更改或取消硬件断点
<8>内部复位
<9>外围断点
(8)待机功能和Break功能之间的关系
Break是CPU中断功能。在调试功能被打破时待机模式被释放。
-停止用户程序的执行
-待机指令单步执行(执行指令后停止用户程序)
-伪实时RAM监视功能(break被打破)
-伪动态memory修改
-执行用户程序断点设置
(9)使用Step In的注意事项(单步执行)
当代码单步执行时,一些SFR(特殊功能寄存器)的值可能会保持不变。如果代码单步执行时,一些SFR(特殊功能寄存器)的值保持不变的情况下,请不要使用单步执行(Step In),而使用连续执行。
代码单步:用户程序中的指令逐条执行
连续执行:用户程序从当前PC指针开始执行
(10)多个EZ-CUBE3不能同时连接到仿真器调试器。
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
未完待续
推荐阅读
EZ-CUBE3用户手册[2-1]如何在RL78微控制器上使用EZ-CUBE3
留言有礼 | 免费赠送瑞萨EZ-CUBE3调试器
EZ-CUBE3用户手册[1]设置