設定記憶體的位址,長度,和屬性
命令:  MEMORY
屬性:
 r    : read only
w    : r/w 
a    : allocable section
i, l : 初始化的區塊
!    : 反向
 
例子:定義RAM和ROM記憶體
MEMORY
{
  RAM (awx) : ORIGIN = 0x10000000, LENGTH = 16K
  ROM (arx) : ORIGIN = 0x00000000, LENGTH = 16K
}

設定程式的區段
命令: SECTIONS
例子:定義text section
SECTIONS
   .text:{ *(.text) }
   .rodata:{ *(.rodata)} 
}
 
指定記憶體給區段
指定記憶體給區段可直接使用MEMORY定義的記憶體去指定, 或是用ALIAS去指定
ALIAS的好處是, 可以配合不同的系統提供不同的記憶體配置 

直接指定 

SECTIONS
{
   .text:{ *(.text) > ROM }
}

 

ALIAS的方式 
若是系統配置ROM
----------------------------------------
REGION_ALIAS("REGION_TEXT", ROM);
SECTIONS
{
    .text:{ *(.text) > REGION_TEXT }
}
---------------------------------

若是系統配置RAM

-----------------------------------------

REGION_ALIAS("REGION_TEXT", RAM);
SECTIONS
{
   .text:{ *(.text) > REGION_TEXT }
}
-----------------------------------

區段的配置可以不用更動, 只要變更REGION_ALIAS的設定即可

 

  
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 hfchou 的頭像
    hfchou

    小方的盜墓筆記

    hfchou 發表在 痞客邦 留言(0) 人氣()