当前位置: 首页 > news >正文

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

1、 文档目标

在嵌入式系统开发中,通过MDK(Microcontroller Development Kit)进行工程配置,将指定的变量存储到指定的内存地址上是一项非常重要的技术。这项操作不仅能够满足特定硬件架构的需求,还能优化系统的性能和资源利用率。本文将详细探讨如何通过MDK的工程配置实现这一目标,并从多个角度分析其背后的原理、应用场景以及注意事项。

2、 问题场景

在项目工程的开发过程中,通常需要对Flash、SRAM等存储器进行分区规划,以满足不同的功能需求。例如:

  • Bootloader与应用程序分离:为了支持固件升级,通常需要将Bootloader代码与应用程序代码分别存储在不同的Flash区域。

  • 关键数据存储:某些关键变量(如校准参数、设备状态等)需要存储在特定的非易失性存储区域,以便在系统断电后仍能保留。

  • 性能优化:将频繁访问的变量放置在高速缓存或特定的RAM区域,可以显著提升系统性能。

因此,如何通过MDK工具链将变量精确地映射到指定的内存地址,成为嵌入式开发中的一个常见需求。

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 版权协议,转载请附上原文出处链接和本声明。

相关文章:

  • springCloud/Alibaba常用中间件之Seata分布式事务
  • Seata源码—4.全局事务拦截与开启事务处理一
  • Armijo rule
  • AI:初识NLP
  • Java 并发编程归纳总结(可重入锁 | JMM | synchronized 实现原理)
  • Jetson Orin Nano - 命令刷机笔记
  • GEE计算 RSEI(遥感生态指数)
  • MYSQL创建索引的原则
  • 【Spring Boot后端组件】mybatis-plus使用
  • Python炫酷星空
  • 使用Python调用DeepSeek的示例
  • 【项目】自主实现HTTP服务器:从Socket到CGI全流程解析
  • 报表控件stimulsoft教程:如何在报表和仪表板中创建热图
  • AQS 基本思想与源码分析
  • 【论信息系统项目的整合管理】
  • [基础] HPOP、SGP4与SDP4轨道传播模型深度解析与对比
  • 后端框架(3):Spring(2)
  • Oracle 批量操作脚本解析:动态执行与分批次删除
  • 项目班——0513——短信验证
  • 适合学校使用的桌面信息看板,具有倒计时、桌面时钟、课程表、天气预报、自动新闻联播、定时关机、消息通知栏、随机点名等功能。
  • 辽宁援疆前指总指挥王敬华已任新疆塔城地委副书记
  • 江西4人拟任县(市、区)委书记,其中一人为“80后”
  • 美国新泽西客运公司遭遇罢工:40年来首次,35万人受影响
  • 首次带人形机器人走科技节红毯,傅利叶顾捷:没太多包袱,很多事都能从零开始
  • 总奖金池百万!澎湃与七猫非虚构写作与现实题材征文大赛征稿启动
  • 大环线呼之欲出,“金三角”跑起来了