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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM-Linux嵌入式系統(tǒng)的Boot Loader分析與設計

          ARM-Linux嵌入式系統(tǒng)的Boot Loader分析與設計

          作者: 時間:2011-02-12 來源:網(wǎng)絡 收藏

          2.2 第二階段拷貝到RAM
          把第二階段Stage2拷貝到RAM地址的最頂大小為1 MB的開始空間,RAM的起始地址為0x30000000。代碼如下所示:

          2.3 堆棧指針的設置
          用戶使用哪些中斷決定了系統(tǒng)堆棧的初始化,以及系統(tǒng)需要處理的哪些錯誤類型。一般情況下,堆棧設置是必須,而且是由管理者自己設置的。如果需要使用IRQ中斷,那么IRQ堆棧的設置也是必須的,下面是IRQ堆棧的設置:


          3 Stage2的設計
          3.1 可執(zhí)行映像Stage2的入口

          由于Glibc庫支持的函數(shù)不能用于編譯和鏈接Boot Loader這樣用C語言編寫的程序,因此把main()函數(shù)的起始地址作為第二階段的入口點是最直接的想法。可以用匯編編寫一段Trampoline小程序,用CPU跳轉(zhuǎn)指令跳到main()函數(shù)去執(zhí)行,當函數(shù)返回時會再次回到Trampoline程序,代碼如下:

          程序順利時就不會再回到開始的Trampoline程序,不然就會回到最后的語句,系統(tǒng)就會重新啟動。


          關(guān)鍵詞: ARM

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();