keil和IAR自动分配SDRAM空间设置使用

Keil:

修改.sct文件

keil和IAR自动分配SDRAM空间设置使用

添加

RW_RAM1 0xC0400000 UNINIT 0x00400000  {  ; RW data
       .ANY (SD_RAM1)
       }

keil和IAR自动分配SDRAM空间设置使用

使用

          #define LOCATION_ATTRIBUTE(name) __attribute__ ((section(name))) __attribute__ ((aligned(4)))

          uint8_t sdram_buf[0x100000] __attribute__ ((section("SD_RAM1"),zero_init));

  变量属性修饰符__attribute__((section(“name”),zero_init))用于将变量强制定义到name属性数据节中,zero_init表示将未初          始化的变量放到ZI数据节中。因为“NO_INIT”这显性命名的自定义节,具有UNINIT属性。

 

IAR:

修改.icf文件

keil和IAR自动分配SDRAM空间设置使用

 

使用:#pragma location="sdram_mem"
                  volatile __no_init uint8_t SdramArray1[0x3fff00];
                  #pragma location="sdram_mem"
                  volatile __no_init uint8_t SdramArray2[0x100];