keil-mdk变量指定存储区域

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

定义变量至外部存储区域

方法1 直接定义
char buf[2048]__attribute__((at(0XC0000000))); 

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

方法2 通过链接脚本定义
  • 1、修改链接标本,定义一块区域
    keil-mdk变量指定存储区域_第1张图片
    keil-mdk变量指定存储区域_第2张图片keil-mdk变量指定存储区域_第3张图片
    定义一片区域,如上图(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,无需自己严格计算绝对地址,更加便捷。

你可能感兴趣的:(单片机,嵌入式硬件,mdk)