1.sct文件
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x24000000 0x00080000 { ; 內部SRAM
.ANY (+RW +ZI) ;其餘的RW/ZI-data都分配到這裏
}
RW_ERAM1 0xD0000000 0x04000000 { ; 外部sdram
*.o(HEAP) ;堆 *.o(stack) 棧
.ANY (EXRAM) ;選擇外部節區,新增的節節區
}
}
在運行域中,添加*.o(HEAP) ;堆 *.o(stack) 棧
2.在sct中新增節區後,變零的使用
//設置變量定義到“EXRAM”節區的宏
#define __EXRAM __attribute__ ((section ("EXRAM")))
//定義變量到SDRAM
uint32_t testValue __EXRAM =7 ;
//上述語句等效於:
//uint32_t testValue __attribute__ ((section ("EXRAM"))) =7 ;
//定義變量到SRAM
uint32_t testValue2 =7 ;
//定義數組到SDRAM
uint8_t testGrup[3] __EXRAM ={1,2,3};
//uint8_t testGrup[3] __EXRAM ; 也可以不初始化
//定義數組到SRAM
uint8_t testGrup2[3] ={1,2,3};
__EXRAM = 後面爲初始化的值
3.將某個文件中的變量放入某一個區域中
RW_IRAM2 0x10000000 0x00010000 {
main.o (+RW +ZI)
queue.o (+RW +ZI)
tasks.o (+RW +ZI)
;
}