导语
在RL78F2x系列MCU的项目开发中,正确设置Option Byte(选项字节)和Security ID(安全ID)是保证芯片安全、配置工作模式(如看门狗、低电压检测、复位引脚等)的关键一步。面对不同的开发环境,设置方法也各不相同。本文将手把手教你如何在主流的CS+for CC、e2studio和IAR Embedded Workbench中完成这两项重要配置。
一、基础概念:它们是什么?
01Option Byte(选项字节):
用于配置MCU的硬件工作模式,例如:
看门狗定时器的启动模式和周期
低电压检测的模式和设定
内部高速振荡器的频率
复位引脚功能(是复位引脚还是通用I/O)
片上调试操作的控制
读Security ID的控制
这些设置需要在程序运行前就生效,对系统的稳定性和安全性至关重要。
02Security ID(安全ID):
存储在Flash特定区域的密码,包含16字节的片上调试Security ID和16字节的Flash串行编程Security ID。

主要功能是阻止未经授权的调试和编程,保护您的知识产权。
当使能安全功能后,任何通过调试接口(如片上调试或串行编程)的访问都必须先验证这个ID密码,否则无法连接芯片。
二、实战配置:三大IDE设置详解
以下操作均以瑞萨RL78F2x系列为例,具体选项名称可能因型号略有差异,请参考对应的硬件手册。
方法一:在CS+ for CC中设置
CS+通过一个直观的图形化工具来管理这些设置。
01打开项目
在“Project Tree”中找到并双击“CC-RL(Build Tool)”。
02配置Option Byte:
Link OptionsàDevice
“User option byte value”此项用于配置用户选项字节(000C0H/040C0H ~ 000C2H/040C2H),数值按低位在前格式存储。具体设定值请参考硬件手册中“31.2 Format of User Option Byte”章节的内容。
“Option byte values for OCD”此项用于配置片上调试选项字节(000C3H/040C3H)。具体设定值请参考硬件手册中“31.3 Format of On-chip Debug Option Byte”章节的说明。
“Set debug monitor area”此项用于配置Security选项字节(000C4H/040C4H)。具体设定值请参考硬件手册中“31.4 Format of Security Option Byte”章节的说明。

03设置Security ID:
Common OptionsàDevice
“Security ID”此项用于配置片上调试Security ID。具体内容请参考硬件手册中“33.3 On-chip Debug Security ID”章节的说明。
“Serial Programming Security ID”此项用于配置Flash串行编程Security ID。详情请参考硬件手册中“32.4 Flash Serial Programming Security ID”章节的说明。

请务必保管好以上Security·ID!
04编译和下载:
当你编译项目时,CS+会自动将这些设置与你的程序代码链接,并在编程时一并烧录到芯片中。
方法二:在e²studio中设置
e²studio基于Eclipse,其设置方式与CS+类似,同样非常直观。
01打开项目
在“Project Explorer”中右键点击项目名,选择“Properties”,C/C++ Build àSettingsàTool SettingsàLinkeràDevice
02配置Option Byte:
勾选“Set user option byte (-user_opt_byte)”,“User option byte value(-user_opt_byte=)”此项用于配置用户选项字节(000C0H/040C0H~000C2H/040C2H),数值按低位在前格式存储。具体设定值请参考硬件手册中“31.2 Format of User Option Byte”章节的内容。
勾选“Set enable /disable on-chip debug by link option(-ocdbg)”,“On-chip debug control value(-ocdbg=)”此项用于配置片上调试选项字节(000C3H/040C3H)。具体设定值请参考硬件手册中“31.3 Format of On-chip Debug Option Byte”章节的说明。
勾选“Set security option byte(-security_opt_byte)”,“Security option byte value(-security_opt_byte=)”此项用于配置Security选项字节(000C3H/040C3H)。具体设定值请参考硬件手册中“31.4 Format of Security Option Byte”章节的说明。

03设置Security ID:
在同一个“Properties”窗口中
“Security ID value(-security_id)”此项用于配置片上调试Security ID。具体内容请参考硬件手册中“33.3 On-chip Debug Security ID”章节的说明。
“Serial Programming Security ID”此项用于配置Flash串行编程Security ID。详情请参考硬件手册中“32.4 Flash Serial Programming Security ID”章节的说明。

输入Security ID。同样,请妥善保管。
04生成代码:
配置完成后,点击工具栏的“Generate Code”按钮。
e²studio会自动生成包含这些设置的代码文件。后续编译和编程时,这些配置就会生效。
方法三:
在IAR Embedded Workbench中设置
IAR通常采用配置文件和特定pragma指令的方式进行设置。
01配置Option Byte:
推荐方法:使用链接器文件。在项目的“Renesas_SCsmc_gen _bspmcu l78_f24vecttbl.c”文件中,通过__root const关键字在固定地址定义选项字节数组。
在C源文件中,设置Option Byte。“optbyte0”~“optbyte4”对应User Option Byte (000C0H/040C0H to 000C2H/040C2H)、On-chip Debug Option Byte (000C3H/040C3H)和Security Option Byte (000C4H/040C4H)。

02设置Security ID:
方法与Option Byte类似,Security ID也有固定的存储地址。
在项目的“Renesas_SCsmc_gen _bspmcu l78_f24vecttbl.c”文件中,通过__root const关键字在固定地址定义选项字节数组。
现有代码中已有片上调试Security ID的配置。

在“vecttbl.c”文件结尾空白处添加代码,配置Flash串行编程Security ID。
左右滑动查看完整内容
/* Security ID Codes for Flash Serial Programming setting(When using IAR) */
#pragma location = "SP_SECUID"
__root constuint8_t sp_secuid[16] =
{0xEE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
编译后它们会被正确分配到Flash的指定位置。
重要提醒
地址是关键:在IAR中手动定义时,Security ID和Option Byte的存储地址必须绝对准确,请务必查阅RL78F2x系列的硬件手册(R01UH0944E,R01UH1061E)。
备份安全ID:一旦设置了Security ID并启用安全功能,如果忘记密码,芯片将永久“锁死”,无法再次编程或调试。请务必在安全的地方记录密码。
先仿真后烧录:建议先在仿真环境下测试Option Byte的设置效果,确认无误后再烧录到实际芯片中,避免错误配置导致芯片无法正常工作。
结语
掌握Security ID和Option Byte的设置是RL78F2x开发的必备技能。无论你偏爱哪种IDE,现在都可以轻松搞定。赶紧收藏这篇文章,在下次项目开发时参考吧!
全部0条评论
快来发表一下你的评论吧 !