我们平时开发项目时,可能会有这么一个需求:将一些常量数据放在指定的位置上。
比如:把固件版本号及checksum放在某个固定的地址上,以便设备开机时进行自检,避免生产或者OTA时,代码或者固件烧录更新错误。
今天我们结合瑞萨RL78系列单片机给大家讲讲将常量数据放在指定位置的小技巧。
因为不同型号的RL78产品,它们的镜像区的大小是不同的。near区和far区的范围定义如下:
在section的类型中,后缀n意味着near属性,后缀f意味着far属性,根据上面near和far区域的范围,确定后缀使用n还是f,因为在定义section时,name_n和name_f是固定格式。
基于R5F100LE,假设你想把一些常量(如0x0,0x02,0x03,0x04,0x05,0x06,0x07,0x08)放在0x2500位置上。首先我们需要在compiler option→link option→Section下的Section start address上进行地址指定,如下: 根据《REN_r20ut3123ej0110-ccrl_MAN_20201101》指令应用定义,可写代码如下: 测试结果如下,写入成功。
|