单片机将常量数据放在指定位置的小技巧

我们平时做单片机项目的时候,可能会有这么一个需求:将一些常量数据放在指定的位置上。

比如:把固件版本号及checksum放在某个固定的地址上,以便设备开机时进行自检,避免生产或者OTA时,代码或者固件烧录更新错误。

今天我们结合瑞萨RL78系列单片机给大家讲讲将常量数据放在指定位置的小技巧。
因为不同型号的RL78产品,它们的镜像区的大小是不同的。near区和far区的范围定义如下:

1.jpg

在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上进行地址指定,如下:

1770089696878151.png

根据《REN_r20ut3123ej0110-ccrl_MAN_20201101》指令应用定义,可写代码如下:

#pragma section const My_Cdat
constunsignedchar myCdat [8] = {1,2,3,4,5,6,7,8};

测试结果如下,写入成功。

1770089723104273.png

来源:瑞萨嵌入式小百科、strongerHuang

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。