国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        從0學ARM——什么是位置無關碼?

        2021-01-13 16:01
        一口Linux
        關注

        一、為什么需要位置無關碼?

        首先我們需要了解一下ARM板子的啟動流程。

        1. exynos 4412啟動流程首先看一下 exynos 4412 memory map :

        可知:iROM基地址是0x00000000iRAM基地址是0x02020000

        這兩塊內(nèi)存都在 SOC中。

        查看exynos 4412 Booting Sequence:

        位于第五章。

        上圖是exynos4412上電復位時的啟動流程,大致如下:

        <1>執(zhí)行內(nèi)部只讀存儲器iROM中的一段代碼(廠家固化在里面的),這段代碼主要是初始化一些系統(tǒng)的基本配置,比如初步時鐘配置、堆棧、啟動模式(對應圖中的標志①)。

        <2>iROM中的代碼根據(jù)階段一獲取的啟動模式(OM_STAT寄存器),從相應的存儲介質中拷貝BL1鏡像到內(nèi)部靜態(tài)隨機存儲器SRAM,BL1主要是完善系統(tǒng)時鐘的初始化工作、內(nèi)存控制器一些時序的配置。做完這些工作后把OS鏡像拷貝到內(nèi)存中(對應圖中標志②③)。

        <3>跳轉到OS中執(zhí)行。

        SRAM只有256KB,而uboot鏡像一般是超過這個大小的,也就是說它不能把完整的uboot鏡像拷貝到SRAM中,因此,推測這里的拷貝方式應該還是:「BL1拷貝的僅僅是uboot的一部分」,這一部分除了能設置好基本的硬件運行環(huán)境外,「還能把其自身(uboot鏡像)完整的拷貝到內(nèi)存中」,然后uboot在內(nèi)存中運行,完成OS鏡像的拷貝和引導

        一般情況下兩者的地址并不相同,程序在DRAM中的地址重定位過程必須由程序員來完成。

        這樣就有了「位置無關代碼」的概念,指代碼不在連接時指定的運行地址空間,也可以執(zhí)行,它一段加載到任意地址空間都能執(zhí)行的特殊代碼。

        uboot搬移到DRAM中,然后跳轉到DRAM繼續(xù)運行uboot剩下的代碼,那么在搬移之前的這段代碼必須是位置無關,而且不能使用絕對尋址指令,否則尋址就會出錯。

        1  2  3  下一頁>  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

        發(fā)表評論

        0條評論,0人參與

        請輸入評論內(nèi)容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網(wǎng)
          獲取更多精彩內(nèi)容
          文章糾錯
          x
          *文字標題:
          *糾錯內(nèi)容:
          聯(lián)系郵箱:
          *驗 證 碼:

          粵公網(wǎng)安備 44030502002758號

          主站蜘蛛池模板: 色偷偷免费视频| 久久精品6| 乐陵市| 崇文区| 国内夫妻自拍| 色姑娘综合网| 99在线观看| 国产亚洲成人网站| 高清无码18禁| 激情久久久| 欧美人禽动交zoz0zzo| 国产尻逼| 鞍山市| 久久草网站| 熟女中文字幕在线| 超碰狠狠干| 草久视频| 人人看成人在线| 998av资源影音先锋| 亚洲成人天堂网| 上饶县| 日本久久中文字幕| 熟女丝袜无码| 男人亚洲天堂| 大又大粗又爽又黄少妇毛片| 无套进入无套内谢A片| 大色欧美| 91在线视频播放| 尤物一区| 亚洲91视频| 五常市| 青田县| 综合网激情| www.99| 丁香久久婷婷| a免费在线| 武定县| 91丝袜视频| 熟女国产精品网站| 91人妻人人澡人人爽人人精品| 伊人免费|