0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA Flash地址绝对定位

jf_pJlTbmA9 来源:瑞萨MCU小百科 作者:瑞萨MCU小百科 2023-10-26 18:24 次阅读

介 绍

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

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

具体步骤如下

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

wKgaomUD6TSAPBnbAAAKhzug0jw619.png

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

wKgZomUD6TWAbKn9AACRhxSxuhU228.png

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

wKgaomUD6TiATX4lAAC0oEK0Slo375.png

4、如下,编辑my_code

wKgZomUD6TqAEa-XAACTpsLyjxI574.png

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

wKgaomUD6TuAIvawAABuIVokikQ605.png

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

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

wKgZomUD6T2AAendAAJZHK0gBWQ356.png

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

wKgaomUD6T-ARr7GAAB6ujGhU-M210.png

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

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

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

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

Build需要使用release。

7、编译完成后,查看如下:

wKgaomUD6UCAUYeZAABI-0XpFPE042.png

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

来源:瑞萨MCU小百科(作者:James Xu)
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1551

    浏览量

    146699
  • 定位
    +关注

    关注

    5

    文章

    1108

    浏览量

    35088
  • RA
    RA
    +关注

    关注

    0

    文章

    16

    浏览量

    24594
收藏 人收藏

    评论

    相关推荐

    伺服电机绝对定位和相对定位问题

    绝对定位,另一种是相对定位。本文将详细介绍伺服电机的绝对定位和相对定位方法,并探讨其适用场景和
    的头像 发表于 03-18 08:39 269次阅读
    伺服电机<b class='flag-5'>绝对</b><b class='flag-5'>定位</b>和相对<b class='flag-5'>定位</b>问题

    请教伺服电机绝对定位和相对定位问题

    请教伺服电机绝对定位和相对定位问题  伺服电机是一种能够根据输入信号精确控制位置、速度和扭矩的电机。它在自动化的工业领域得到广泛应用,数据中心、机器人、医疗设备等都离不开伺服电机的运动控制。而伺服
    的头像 发表于 02-05 17:39 1213次阅读

    定位指令中的绝对定位是什么?绝对定位指令怎么用?

    在自动化设备和机器人技术中,定位指令是一种非常重要的控制手段。
    的头像 发表于 12-14 17:37 856次阅读
    <b class='flag-5'>定位</b>指令中的<b class='flag-5'>绝对</b><b class='flag-5'>定位</b>是什么?<b class='flag-5'>绝对</b><b class='flag-5'>定位</b>指令怎么用?

    uboot开启地址无关后的重定位地址操作

    开启地址无关后的重定位地址操作 在由save_boot_params跳转回save_boot_params_ret后启动流程继续往下执行来到下面代码段: save_boot_params_ret
    的头像 发表于 12-07 11:25 291次阅读

    Xilinx FPGA从spi flash启动配置数据时的地址问题

    fpga 上电时,默认是从 flash 的 0x00 地址开始读数据。如 UG470 文档 page144 描述
    的头像 发表于 11-29 09:20 486次阅读
    Xilinx FPGA从spi <b class='flag-5'>flash</b>启动配置数据时的<b class='flag-5'>地址</b>问题

    为什么STM32的Flash地址要设置到0x08000000?

    为什么STM32的Flash地址要设置到0x08000000?
    的头像 发表于 10-26 15:50 990次阅读
    为什么STM32的<b class='flag-5'>Flash</b><b class='flag-5'>地址</b>要设置到0x08000000?

    AT32F4系列FLASH擦写操作的地址偏移说明

    AT32F4系列FLASH擦写操作的地址偏移说明擦除或者编程flash 时,如果操作地址不在flash
    发表于 10-23 08:24

    快速定位DMA访问外设寄存器地址

    快速定位DMA访问外设寄存器地址快速定位DMA访问外设寄存器地址
    发表于 10-19 08:14

    如何使用绝对寻址组态地址指针?

    使用地址指针时,可通过较少的变量来高效地访问 PLC 中的不同地址。使用的是变量而非 PLC 中的绝对地址,以便能够在运行系统中更改地址
    的头像 发表于 08-25 10:15 775次阅读
    如何使用<b class='flag-5'>绝对</b>寻址组态<b class='flag-5'>地址</b>指针?

    V90伺服一跑绝对定位就丢失原点。

    西门子V90伺服用FB284块的EPOS模式,回零完成后,一跑绝对定位就会丢失原点(Axisref变成False),没有报警代码。跑点动则不会丢失原点。请问这种情况应该怎么解决?
    发表于 06-12 16:49

    相对定位绝对定位的区别

    相对定位
    YS YYDS
    发布于 :2023年05月27日 19:45:05

    Flash基本操作——Flash工具1(3)#多媒体技术

    FlaSh
    未来加油dz
    发布于 :2023年05月24日 10:46:17

    Flash基本操作——Flash基础(2)#多媒体技术

    FlaSh
    未来加油dz
    发布于 :2023年05月24日 10:44:22

    Flash基本操作——Flash基础(1)#多媒体技术

    FlaSh
    未来加油dz
    发布于 :2023年05月24日 10:43:53

    伺服定位时如何切换定位地址

    在使用伺服的定位功能是,通常会有多个不同的定位地址,常用的处理方法是只写一个定位指令,然后把地址数据做成参数,每次要用时先传输
    的头像 发表于 05-23 10:03 639次阅读
    伺服<b class='flag-5'>定位</b>时如何切换<b class='flag-5'>定位</b><b class='flag-5'>地址</b>?