2026 / 07 / 22
RA Flash地址绝对定位

介  绍

MCU设计中,很多时候客户需要在Flash指定地址存入指定数据,这里需要用到Flash的绝对定位,我们知道有些公司可以在keil使用char const buf[x] __attribute__ ((at(0x80000))) = {};实现,那么RA是否可以实现?


通过瑞萨官方编译工具e2 studio对.ld脚本文件修改,在Flash上划一小块出来,然后通过__attribute__实现。


具体步骤如下

首先在Flash上划一块出来,在e2 studio对.ld文件进行修改。工程路径如下图


fsp.ld文件中,memory选项,Add新的分区,这里直接指定起始地址和长度。


fsp.ld下,文本编辑,初始my_code(!rx),删除”!”


如下,编辑my_code


在文本编辑会自动创建代码如下:


为了避免可能出现的问题,最好修改Flash地址空间,因为到此时,my_code被包在Flash区,需要修改flash区地址。


首先,复制memory_regions.ld并改名到同一目录下,在fSP.ld文件文本编辑处include新复制的文件:


接下来,我们需要在memory_regions_my.ld修改Flash空间


同样,我们可以在此处设置my_code的起始地址和长度,在第2步新建的分区直接用起始地址和长度别名替代。


在主函数变量声明处,添加代码

const char buff[16] __attribute__((section(".my_code "))) = {"1234567890abcdef"};


buff长度需与分区大小相同,否则会报错。

Build需要使用release。


编译完成后,查看如下:


注:推荐大家使用e2 studio help contents:(非常好用!!!)

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信