以下僅為個人理解,若有不足之處,望指正。
在無錫等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需策劃設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,無錫網(wǎng)站建設(shè)費用合理。鏈接地址,物理地址,虛擬地址這三者地址都有各自的區(qū)別,這也是我開發(fā)學(xué)習(xí)過程中,自己琢磨出來領(lǐng)悟的,網(wǎng)上搜索的都講的很專業(yè)化,不太好理解,理解起來感覺有些吃力。所以我想以個人理解的角度,通俗點去講講這三者的功能作用。
比較簡單,就是存儲器內(nèi)(SRAM,SDRAM)分配的真實地址,2440的SRAM前4KB的物理地址是:0x00000000~0x00400000。SDRAM的起始物理地址是0x30000000。
有匯編基礎(chǔ)的知道,程序運行流程受PC指針控制,PC指針指向哪個地址,程序就會去這個地址執(zhí)行。
通常情況,沒有虛擬地址存在情況,這個PC訪問的地址就是物理地址,PC直接指向這個物理地址,在存儲器內(nèi)執(zhí)行相關(guān)代碼指令,控制寄存器等動作。
有時如果程序量過大,存儲器內(nèi)存無法滿足程序運行,而內(nèi)存里某些物理地址是可以被一些不同的程序指令共用,因此為提高內(nèi)存的利用,采用虛擬內(nèi)存地址的思想,該虛擬地址容量要大于實際物理地址容量,程序執(zhí)行時是在虛擬地址上運行,也就是PC指針指向的是虛擬地址。但是虛擬地址運行是控制不了實際存在的物理地址,從而那些寄存器無法被控制。因此需要一個地址映射器(翻譯器),將虛擬地址映射到對應(yīng)的物理地址上(其中多個虛擬地址可對應(yīng)到同一個物理地址),從而對物理地址進行控制。這個地址映射器叫做“內(nèi)存管理單元(MMU)”。不是所有芯片都存在這樣的單元,而2440內(nèi)部具有這個單元功能,因此可以采用虛擬地址的思想來運行程序。32位的2440可以建立虛擬內(nèi)存空間為:0~2^32=0~4GB
感覺不是很好理解,我感覺它也一種虛擬存在的地址,但又不完全是。在makefile文件中定義完鏈接地址后,如:
arm-linux-ld -Ttext 0x3000000 -g -o led_on_elf crt0.o led_lighton.o
然后執(zhí)行make進行編譯和鏈接,鏈接后生成最終的可執(zhí)行文件led_on_elf ,這個文件第一條指令代碼會賦予給它一個鏈接首地址,就是0x3000000 ,第二條指令后,依次往上。這時程序還沒燒錄到芯片中,但每條指令都有對應(yīng)一個鏈接地址標號,在程序燒錄到芯片后,程序仍然是按PC指向的物理或者虛擬地址進行執(zhí)行(PC首地址為程序燒到芯片里的首地址)。此時鏈接地址僅是個每條指令的標號,沒有產(chǎn)生作用,只有當在指令中直接對PC進行賦值時,如:ldr pc,=main。那么程序就會尋找到main函數(shù)對應(yīng)的地址標號,把這個地址標號,也就是鏈接地址賦值給PC,此后PC運行的地址就跟著鏈接地址執(zhí)行下去,鏈接地址就等于PC運行地址,鏈接地址就跟物理(虛擬)地址同步。(或者:ldr pc,=0x30000010,PC就會跳轉(zhuǎn)到鏈接地址為0x30000010的地方去運行,0x30000010也就成了物理(虛擬)地址)
所以,我覺得把這鏈接地址叫做代碼的地址標號更形象一些。只有當執(zhí)行對PC賦值時,才能達到位置改變的效果,鏈接地址就會被讀出而產(chǎn)生作用。否則,程序上電,PC還是默認按代碼在芯片里的首地址去運行。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。