MDK分散加載文件,外部SDRAM變零定義

 

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)
 
  ; 
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章