国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

S5PV210微處理器的啟動過程分析

2017-07-11 08:21葛耿育
電腦知識與技術(shù) 2017年15期
關(guān)鍵詞:三星公司存儲設(shè)備代碼

葛耿育

摘要:嵌入式系統(tǒng)產(chǎn)品開發(fā)的整個過程按照先后順序包括:在給定的硬件模塊上移植boodoader(引導(dǎo)程序)、移植嵌入式操作系統(tǒng)內(nèi)核、移植根文件系統(tǒng)、編寫特定外圍設(shè)備的驅(qū)動程序和編寫應(yīng)用程序。移植bootloader是所有軟件層面工作的第一步,需要考慮微處理器和外圍存儲器件的具體特征,有一定的難度,該文基于ARMCortexA8內(nèi)核的S5PV210微處理器,詳細分析其上電后從啟動介質(zhì)中啟動軟件系統(tǒng)的過程。

關(guān)鍵詞:嵌入式系統(tǒng);引導(dǎo)程序;移植;$5PV210

由于外設(shè)存儲器在技術(shù)上存在一定的缺陷,諸如某些存儲塊損壞或者受到強干擾發(fā)生位翻轉(zhuǎn),則可能導(dǎo)致系統(tǒng)無法正常啟動。因此,支持多個啟動介質(zhì)、啟動順序和多級啟動在嵌入式系統(tǒng)應(yīng)用中顯得尤為重要。目前主流的嵌入式微處理器都會支持多種啟動介質(zhì),如NAND Flash(Movi NAND、OneNAND)、Nor Hash、eSSD、MMC和SD卡、eMMC和iNAND等,也有通過外設(shè)接口啟動,如以太網(wǎng)和USB接口。本文以S5PV210微處理的硬件結(jié)構(gòu)和內(nèi)部資源為參考,分析其啟動過程詳細細節(jié),給嵌入式系統(tǒng)應(yīng)用開發(fā)者在引導(dǎo)程序b00tloader移植技術(shù)上提供一些參考方案。

1S5PV210微處理器介紹

相對于基于ARM9的$3C2440/2410微處理器從外部Nor.Hash或者NANDFlash啟動而言,基于Cortex A8的S5PV210微處理器增加了64KB的內(nèi)部iROM和96KB的內(nèi)部iRAM,核心部件如圖1所示。所以三星公司將bootloader程序分為3個部分,第一個部分是將BL0內(nèi)置于iROM中,通過它來啟動后面的引導(dǎo)程序。這種方式啟動的優(yōu)點是:第一,減少啟動費用,第二,提高數(shù)據(jù)的可讀率,第三減少產(chǎn)品開發(fā)的產(chǎn)本。同時需要基本的CPU模塊外,還有通用內(nèi)存接口、SD/eMMC接口、NandHash接口、oneNand接口、eSSD接口和UART/USB接口,分別啟動對應(yīng)接口相連接的啟動存儲設(shè)備。S5PV210所有的存儲設(shè)備都支持通過MMC通道2的SD/MMC設(shè)備啟動,以防止第一啟動設(shè)備出現(xiàn)故障后無法進入系統(tǒng)。

2S5PV210啟動設(shè)備選擇

S5PV210微處理器支持多種存儲設(shè)備的啟動,具體使用哪一種啟動設(shè)備取決于封裝芯片外設(shè)的OM類型引腳的接線配置,該芯片有6個OM引腳,標號分別為OM0、OM1、OM2、OM3、OM4、OM5,縮寫為OM[5:01,分別可以接電源正VDD和接地GND。參考數(shù)據(jù)手冊中的定義,如圖2和圖3所示,當OM5引腳接VDD時,選擇USB/UART作為第一啟動方式,當OM5引腳接GND時,根據(jù)OM0到OM4的接線不同來決定具體選擇哪一種啟動設(shè)備,例如OM[5:01=001101,代表選擇從SD/MMC性質(zhì)的存儲設(shè)備中啟動。

3S5PV210啟動過程分析

由于內(nèi)部SRAM的容量是96KB,啟動部分為BL0、BLl和BL2三個步驟,因此三星公司推薦的S5PV210啟動方式是bootloader必須在16KB至96KB的范圍內(nèi),其中BLl的最大容量是16KB,BL2的最大容量是96KB,啟動過程如下所述:

第一步,CPU上電后從內(nèi)部iROM中讀取三星公司內(nèi)置的代碼(BL0階段)內(nèi)置了64KB的iROM代碼,主要用來初始化CPU時鐘、關(guān)閉看門狗、初始化指令緩沖區(qū)、初始化堆棧區(qū)、初始化塊設(shè)備拷貝函數(shù)、復(fù)制BL1階段程序到內(nèi)部SRAM區(qū)、驗證BL1的校驗和(如果驗證失敗,BL0將嘗試第二啟動方式,即SD/MMC通道2)、檢查是否是安全啟動模式(如果安全密鑰值已經(jīng)寫入處理器中,則屬于安全啟動模式,驗證BL1的完整性)以及最終跳轉(zhuǎn)到BL1的起始地址開始執(zhí)行新的程序。由于這一段iROM代碼是三星公司出廠前預(yù)置的,并不知道產(chǎn)品公司會用什么類型的外置Flash和DRAM,因此,該段代碼不負責(zé)初始化外圍設(shè)備,只能初始化SoC內(nèi)部的硬件。

第二步,在SRAM中執(zhí)行BL1程序,加載剩下的bootloader代碼段(BL2)到剩下的SRAM空間,如果是安全啟動模式,則BLl程序需要驗證BL2的完整性。之后跳轉(zhuǎn)到SRAM中的BL2的起始地址執(zhí)行程序。

第三步,BL2程序運行時初始化DRAM,將啟動設(shè)備中的嵌入式操作系統(tǒng)加載到DRAM中,跳轉(zhuǎn)到DRAM中OS的起始地址執(zhí)行。此時,已經(jīng)初始化好整個系統(tǒng)的運行環(huán)境,可以在系統(tǒng)中運行其他應(yīng)用軟件。

然而,實際項目中的bootloader大部分的代碼容量會大于96KB,例如常用的uboot啟動引導(dǎo)程序為100KB到200KB,此時三星公司推薦的啟動過程和方案不可行。解決的方案是依照uboot等引導(dǎo)程序的實際情況而定,uboot可以邏輯上分為前16KB作為BL1,剩余部分作為BL2(大于80KB),啟動過程如下:

第一步,設(shè)備上電后執(zhí)行BL0代碼段,同三星公司推薦的一樣,這部分內(nèi)容在iROM中不可更改。

第二步,從iROM中跳轉(zhuǎn)到iRAM中執(zhí)行uboot的前16KB代碼,即BL1。這部分代碼初始化DRAM,之后將整個uboot加載到DRAM中,重定位地址。此處也可以將uboot分成兩個物理部分BL1和uboot,分別指定不同的鏈接地址,啟動時將兩個部分加載到不同的地址,如BLl加載到iRAM,uboot加載到DRAM中,則不需要重定位也可以正常啟動。

第三步,uboot在DRAM中運行,然后加載啟動設(shè)備中的0s到DRAM中運行。整個過程結(jié)束,系統(tǒng)運行環(huán)境完成。

4總結(jié)

本文所述的在嵌入式微處理器S5PV210為核心的嵌入式系統(tǒng)中上電啟動過程分析,將bootloader引導(dǎo)程序中實現(xiàn)啟動過程的方法與三星公司官方的啟動方法作對比,后者具有不受啟動程序容量限制的優(yōu)點。理解這兩者的區(qū)別有利于開發(fā)者參考官方數(shù)據(jù)手冊更好進行嵌入式軟件程序的開發(fā)與維護。

猜你喜歡
三星公司存儲設(shè)備代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
Windows 7下USB存儲設(shè)備接入痕跡的證據(jù)提取
基于Flash芯片的新型存儲設(shè)備數(shù)據(jù)恢復(fù)技術(shù)研究
用批處理管理計算機USB設(shè)備的使用
随州市| 工布江达县| 含山县| 出国| 麻江县| 佛山市| 靖安县| 江达县| 淮安市| 福贡县| 连山| 巩留县| 从化市| 岳普湖县| 吉安县| 商水县| 易门县| 平阳县| 澄迈县| 宜州市| 岳阳市| 仙桃市| 平顺县| 呼玛县| 恭城| 仁寿县| 河池市| 上杭县| 南投县| 遂川县| 木里| 铜鼓县| 化德县| 乌鲁木齐县| 信宜市| 哈巴河县| 赣州市| 丰顺县| 菏泽市| 巢湖市| 上饶县|