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

          新聞中心

          Arm啟動(dòng)流程解析

          作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò) 收藏
          談到arm啟動(dòng)流程不得不說(shuō)的是bootloader,但是我這篇文章主要來(lái)談?wù)刟rm啟動(dòng)流程的,所以bootloader只是跟大家簡(jiǎn)介一下就ok。這篇文章我會(huì)談到以下內(nèi)容:
          1、bootloader簡(jiǎn)介以及其作用
          2、2440、6410、210當(dāng)下比較常見(jiàn)的3款處理器的啟動(dòng)流程進(jìn)行簡(jiǎn)單分析,通過(guò)這三款處理器的分析希望大家掌握arm處理器的啟動(dòng)分析。
          Ok我們進(jìn)入主題
          lBootloader簡(jiǎn)介及其作用
          在我看來(lái)bootloader的作用是初始化必要的硬件,引導(dǎo)內(nèi)核啟動(dòng)。(當(dāng)然這是主要作用,今天的重點(diǎn)不在bootloader,所以在我后面的博文會(huì)繼續(xù)談到的)
          l啟動(dòng)流程分析
          在分析啟動(dòng)流程的時(shí)候我們將會(huì)使用的文檔是三星公司提供的芯片手冊(cè),通過(guò)手冊(cè)我們搞清楚芯片的啟動(dòng)。
          在分析啟動(dòng)流程之前我們首先要清楚不論是arm的何種處理器,其都是從0x0 0地址處開(kāi)始執(zhí)行程序的。下面的分析我將會(huì)通過(guò)三個(gè)方面:1、芯片支持的啟動(dòng)方式2、地址布局3、啟動(dòng)流程
          1.2440
          a)啟動(dòng)方式
          由上圖可知,S3C2440支持兩種啟動(dòng)模式:NAND和非NAND(這里是Nor Flash),具體采用的方式取決于OM0、OM1兩個(gè)引腳的狀態(tài)。


          b)地址布局
          我們知道arm從0地址出運(yùn)行代碼那么我們的零地址處到底存放的是什么東西呢?我們通過(guò)地址布局圖來(lái)分析


          從上圖我們可以清楚的看到左邊的是從Nor Flash啟動(dòng)的地址布局,右邊是從NAND啟動(dòng)的地址布局,因?yàn)镹or Flash內(nèi)可以運(yùn)行程序,所以我們?cè)诜舃ootloader的時(shí)候放在0地址處即可,所以我們重點(diǎn)分析從NAND啟動(dòng)。
          c)啟動(dòng)流程
          我們從地址布局圖中可以看到,當(dāng)我們從NAND啟動(dòng)的時(shí)候0地址處是BootSRAM(又叫做stepping stone墊腳石),當(dāng)我們上電時(shí)其會(huì)做以下事情
          1.上電后處理器自動(dòng)將nandflash前4KB的內(nèi)容到boot sram開(kāi)始執(zhí)行(由硬件完成)。
          2.通過(guò)bootsram(即剛才進(jìn)來(lái)的4k)來(lái)初始化相關(guān)硬件和寄存器從而訪(fǎng)問(wèn)nandflash,接下來(lái)把剩余的bootloader到內(nèi)存(SDRAM/DRAM)中,當(dāng)stepping stone里面的4KB執(zhí)行完以后跳轉(zhuǎn)到內(nèi)存繼續(xù)執(zhí)行,完成系統(tǒng)的啟動(dòng)。
          2.6410
          a)啟動(dòng)方式


          從上圖我們可以看到6410支持的啟動(dòng)方式比較多有SROM(Nor Flash)啟動(dòng),oneNAND啟動(dòng),IROM(IROM是處理器內(nèi)部的固件/存儲(chǔ)器,但不是stepping stone)啟動(dòng)。其中IROM中又有sd卡、NAND,我們可以配置相應(yīng)的管腳去選擇其啟動(dòng)方式。
          b)地址布局


          從上圖我們可以發(fā)現(xiàn)在0地址處是一個(gè)鏡像區(qū),不放置任何設(shè)備,當(dāng)我們選擇不同的啟動(dòng)方式的時(shí)候,其通過(guò)映射關(guān)系將對(duì)應(yīng)的設(shè)備映射到鏡像區(qū)域。比如我們選擇從IROM啟動(dòng)其就會(huì)將IROM映射到該區(qū)域。
          c)啟動(dòng)流程


          假設(shè)我們從NAND啟動(dòng),從啟動(dòng)方式中我們可以知道從NAND啟動(dòng)是屬于從IROM啟動(dòng)的,所以當(dāng)我們上電的時(shí)候其會(huì)做以下事情:
          1.將IROM映射到鏡像區(qū)
          2.IROM中有芯片廠商寫(xiě)好的BL0,由BL0將系統(tǒng)引導(dǎo)至啟動(dòng)選項(xiàng),然后將BL1(NAND中前8k)拷進(jìn)stepping stone進(jìn)行運(yùn)行
          3.BL1將剩下的BL2拷進(jìn)內(nèi)存,當(dāng)BL1執(zhí)行完以后跳轉(zhuǎn)到內(nèi)存繼續(xù)執(zhí)行,完成系統(tǒng)的啟動(dòng)。
          3.210
          a)啟動(dòng)方式




          從上圖我們可以看到210支持的啟動(dòng)方式相當(dāng)?shù)亩?,但?410相似。
          b)地址布局


          從上圖我們可以看到其地址布局和6410類(lèi)似,采用了映射的方法。
          c)啟動(dòng)流程


          假設(shè)我們從NAND啟動(dòng),從啟動(dòng)方式中我們可以知道從NAND啟動(dòng)是屬于從IROM啟動(dòng)的,所以當(dāng)我們上電的時(shí)候其會(huì)做以下事情:
          1.將IROM映射到鏡像區(qū)
          2.IROM中有芯片廠商寫(xiě)好的BL0,由BL0將系統(tǒng)引導(dǎo)至啟動(dòng)選項(xiàng),然后將BL1(NAND中前16k)拷進(jìn)stepping stone進(jìn)行運(yùn)行
          3.若BL2小于80K,BL1則將其拷進(jìn)stepping stone。若BL2大于80k,BL1將剩下的BL2拷進(jìn)內(nèi)存。當(dāng)BL1執(zhí)行完以后跳轉(zhuǎn)到內(nèi)存或者繼續(xù)在stepping stone運(yùn)行BL2,完成系統(tǒng)的啟動(dòng)。


          關(guān)鍵詞: Arm啟動(dòng)流

          評(píng)論


          技術(shù)專(zhuān)區(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); })();