天天看點

實體位址,虛拟位址,連結位址的個人了解

以下僅為個人了解,若有不足之處,望指正。

連結位址,實體位址,虛拟位址這三者位址都有各自的差別,這也是我開發學習過程中,自己琢磨出來領悟的,網上搜尋的都講的很專業化,不太好了解,了解起來感覺有些吃力。是以我想以個人了解的角度,通俗點去講講這三者的功能作用。

實體位址

比較簡單,就是存儲器内(SRAM,SDRAM)配置設定的真實位址,2440的SRAM前4KB的實體位址是:0x00000000~0x00400000。SDRAM的起始實體位址是0x30000000。

有彙編基礎的知道,程式運作流程受PC指針控制,PC指針指向哪個位址,程式就會去這個位址執行。

通常情況,沒有虛拟位址存在情況,這個PC通路的位址就是實體位址,PC直接指向這個實體位址,在存儲器内執行相關代碼指令,控制寄存器等動作。

虛拟位址

連結位址

arm-linux-ld -Ttext 0x3000000 -g -o led_on_elf  crt0.o led_lighton.o           

繼續閱讀