【ARM】MDK如何将变量存储到指定内存地址

【更多软件使用问题请点击亿道电子官方网站

1、 文档目标

通过MDK的工程配置,将指定的变量存储到指定的内存地址上。

2、 问题场景

在项目工程的开发过程中,对于flash要进行分区,需要规划出一个特定的内存区域来存储变量。

3、软硬件环境

1)、软件版本:MDK 5.38a

2)、电脑环境:Windows 11

3)、外设硬件:无

4、解决方法

1)、首先,需要在Options->Target中去规划出一个内存地址(如图4-1),在Read/write Memory Areas中的RAM1中去设置内存的起始地址和内存的大小。并且勾选上前面的default。

图4-1

2)、然后,切换在Linker栏中。取消勾选Use Memory Layout from Target Dialog,让µVision不根据Target和Properties对话框中提供的内存信息创建一个链接器分散文件。而由下面的Scatter Flies中去定义分散加载文件的内存划分。点击Edit...可以去编辑文件。(如图4-2)

图4-2

3)、在打开的分散加载文件中,去定义刚才在Target中规划的内存地址。如图4-3中的红框处。将这个内存段用sdram_area字段来标识。

图4-3

4)、然后,在源文件中,将利用宏定义去用SDRAM_AREA_ATTRIBUTES标识符去标识__attribute__((section("sdram_area")))语句。在使用的时候,就可以按照下面代码段中的方式去使用。

#define SDRAM_AREA_ATTRIBUTES __attribute__((section("sdram_area")))

int SDRAM_AREA_ATTRIBUTES test_num = 10;
char buf[20]SDRAM_AREA_ATTRIBUTES;

5)、定义好变量后,在源文件中调用了该变量后,可以在Map文件中看到定义的变量目前存储在指定的地址上。(如图4-5)

图4-5

————————————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

关于亿道电子

亿道电子技术有限公司(www.emdoor.cn)是国内资深的研发工具软件提供商,公司成立于2002年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值