如何将变量存储在指定内存地址(基于Keil MDK-ARM)

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

本文介绍了将变量存储在特定内存地址的方法。对于AC5编译器,可以使用__attribute__((at(0x20008000)))来定义变量的地址;对于AC6编译器,可以使用__attribute__((section(".ARM.__at_0x20008000")))来定义变量的地址。通过这种方式,可以使用STMStudio查看指定地址的变量。

🎯

关键要点

  • 将特定变量分配到确定的内存地址有多种原因。
  • 校验和可能需要出现在特定地址,函数也可能需要定位到特定内存区块。
  • 可以通过C语言代码在特定内存地址中定位变量。
  • STM Studio支持四种类型的变量管理:相对变量、统计变量、表达式变量和插件变量。
  • 局部变量不支持在STM Studio中管理。
  • AC5编译器使用__attribute__((at(0x20008000)))定义变量地址。
  • AC6编译器使用__attribute__((section( '.ARM.__at_0x20008000' )))定义变量地址。
  • 通过指定内存地址,可以使用STMStudio查看该地址的变量。
🏷️

标签

➡️

继续阅读