keil-mdk变量指定存储区域

本文参考:
STM32_KEIL 变量指定存储区域
STM32H743+Keil-将变量定义到指定内存

定义变量至外部存储区域

方法1 直接定义

char buf[2048]__attribute__((at(0XC0000000))); 

定义buf在起始地址为0xC0000000的连续区域,这种方法简单高效,但是对于数量很多的变量,就麻烦不实用了。

方法2 通过链接脚本定义

  • 1、修改链接标本,定义一块区域
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    定义一片区域,如上图(sdram_area)。

  • 2.定义宏定义

#define SDRAM_AREA_ATTRIBUTES  __attribute__ ((section("sdram_area")))
  • 3.定义变量
char buf[2048]SDRAM_AREA_ATTRIBUTES  ; 
char buf2[2048]SDRAM_AREA_ATTRIBUTES  ; 

此时变量已经定义至指定区域。相较于方法1,无需自己严格计算绝对地址,更加便捷。

猜你喜欢

转载自blog.csdn.net/weixin_40837318/article/details/131858268
今日推荐