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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM可執(zhí)行映象文件

          ARM可執(zhí)行映象文件

          作者: 時間:2016-11-11 來源:網絡 收藏
          使用ADS編譯生成.axf文件,利用ARM fromELF可以提出可執(zhí)行文件.bin------>可直接寫入到Flash中:

          bin文件的構成:RO+RW+ZI,其中RO中的地址和符號的地址是相同的,但RW和ZI是不同的,所以在用到RW和ZI之前必須將其移動到實際的地址上,可以參考44binit.s的源代碼:

          本文引用地址:http://www.ex-cimer.com/article/201611/316966.htm

          ;********************************************************
          ;* Copy and paste RW data/zero initialized data *
          ;********************************************************
          LDR r0, =|Image

          RO
          Limit| ; Get pointer to ROM data
          LDR r1, =|Image
          RW
          Base| ; and RAM copy
          LDR r3, =|Image
          ZI
          Base|
          ;Zero init base => top of initialised data

          CMP r0, r1 ; Check that they are different,判斷RW是否需要移動
          BEQ %F1
          0
          CMP r1, r3 ; Copy init data
          LDRCC r2, [r0], #4 ;--> LDRCC r2, [r0] + ADD r0, r0, #4
          STRCC r2, [r1], #4 ;--> STRCC r2, [r1] + ADD r1, r1, #4
          BCC %B0
          1
          LDR r1, =|Image
          ZI
          Limit| ; Top of zero init segment
          MOV r2, #0
          2
          CMP r3, r1 ; Zero init
          STRCC r2, [r3], #4
          BCC %B2

          所有ARM的源代碼都必須在使用RW和ZI域之前運行



          評論


          技術專區(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); })();