<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM 鏈接地址和燒寫地址

          ARM 鏈接地址和燒寫地址

          作者: 時間:2016-11-24 來源:網絡 收藏
          ARM設計中,一般會涉及都一個鏈接地址,這個鏈接地址和燒寫地址很容易混淆,會認為鏈接地址就是燒寫地址,這個是錯的,下面說的是個人的一些認識,可能會有一些錯誤,說的也可能不專業(yè),但是對于初學者,可以幫助理解。
          首先鏈接地址和燒寫地址是兩個范疇的東西,幾乎是沒有關系的,燒寫地址,可以認為是物理地址,而鏈接地址可以認為是虛擬地址,對于程序員來說,看到的是虛擬地址,一般虛擬地址經過MMU映射成具體的物理地址,進而再去訪問實際的物理地址。
          鏈接地址也可以理解成是一個符號,因為一個可執(zhí)行程序,一般要經過預編譯,編譯,匯編,鏈接三個過程,最后一個過程是鏈接,就是把前三部分產生的所有.o文件,串起來,形成一個整體的程序,所以每個.o文件上都有一些的函數(shù)或者子程序,通過給定鏈接地址,相當于是從全局出發(fā),給所有的文件中的函數(shù),統(tǒng)一編號,起了一個“名字”,名字的范圍是0x00000000--0xFFFFFFFF,那么這個名字其實就是鏈接地址。如果MMU未打開,則鏈接地址就是物理地址,反之,則鏈接地址是映射的物理地址。
          那么問題就來了,當程序開始執(zhí)行時,CPU是通過鏈接地址進行訪問具體的函數(shù)的,如果這個函數(shù)沒有存到鏈接地址映射到的物理地址那會怎么辦呢?答案是很簡單的,那就是程序會跑飛,打個比喻吧,CPU要訪問38號房間的客人,但是客人卻沒有移駕到38號,CPU又很呆,它只能亂啦,這里38號就是鏈接地址,客人就是具體的函數(shù)名。所以在使用鏈接地址時,如果未打開mmu,那么需要將程序復制到對應的物理地址處,若使用了MMU則需要將程序復制到映射對應的物理地址處。
          燒寫地址就是實際的物理地址,這個是通過存儲控制器進行訪問的,而且一般的燒寫軟件可以實現(xiàn)指定地址處燒寫。
          綜上,燒寫地址與鏈接地址有關系,但是關系不是特別明顯,對于程序員來說,用的是鏈接地址,但是需要設置濾清好鏈接地址與燒寫地址的映射關系。


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();