新聞中心

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

        ARM-Linux嵌入式系統的Boot Loader分析與設計

        作者: 時間:2011-02-12 來源:網絡 收藏

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

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


        3 Stage2的設計
        3.1 可執行映像Stage2的入口

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

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


        關鍵詞: ARM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新津县| 唐山市| 麦盖提县| 昂仁县| 台东市| 建宁县| 湘西| 双江| 靖江市| 汤原县| 邳州市| 海南省| 阆中市| 华坪县| 丁青县| 谢通门县| 南部县| 平武县| 安福县| 通化县| 仲巴县| 台前县| 交城县| 万源市| 永吉县| 察隅县| 泰来县| 宜州市| 东乌珠穆沁旗| 万源市| 阿坝| 滨州市| 沾益县| 酉阳| 翁牛特旗| 龙海市| 卢湾区| 舒城县| 赣州市| 漳浦县| 光泽县|