亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于G9-X芯片的U-Boot移植

        2022-10-27 06:50:50安昱昕
        汽車(chē)電器 2022年10期
        關(guān)鍵詞:內(nèi)核架構(gòu)啟動(dòng)

        安昱昕,杜 彬,田 彬

        (陜西重型汽車(chē)有限公司汽車(chē)工程研究院,陜西 西安 710200)

        隨著域、集中式車(chē)載電子電器架構(gòu)的發(fā)展,基于SoC芯片的車(chē)載控制器及車(chē)用操作系統(tǒng)研發(fā)成為構(gòu)建域、集中式電子電器架構(gòu)軟硬件平臺(tái)的落地方向,而引導(dǎo)加載程序是車(chē)用操作系統(tǒng)加載運(yùn)行的必要組成,U-Boot作為主流的嵌入式操作系統(tǒng)內(nèi)核引導(dǎo)加載程序,其穩(wěn)定性、易移植性已被廣泛驗(yàn)證。本文介紹了基于G9-X芯片,移植U-Boot引導(dǎo)加載程序的方法,為車(chē)用操作系統(tǒng)移植以及后續(xù)軟件開(kāi)發(fā)工作提供參考。

        1 U-Boot介紹

        1.1 U-Boot作用及原理

        U-Boot負(fù)責(zé)啟動(dòng)操作系統(tǒng)內(nèi)核,并向內(nèi)核傳遞根文件系統(tǒng)路徑、網(wǎng)絡(luò)配置信息、內(nèi)存地址等重要參數(shù)。U-Boot設(shè)計(jì)目的在于滿(mǎn)足多平臺(tái)通用性,通過(guò)抽取不同硬件平臺(tái)系統(tǒng)啟動(dòng)的共性特征,形成一套平臺(tái)通用引導(dǎo)系統(tǒng)架構(gòu)。各個(gè)芯片廠(chǎng)商根據(jù)自己芯片特性進(jìn)一步完成引導(dǎo)系統(tǒng)的定制化開(kāi)發(fā)或移植,提高開(kāi)發(fā)效率同時(shí)減少開(kāi)發(fā)成本。

        1.2 U-Boot啟動(dòng)流程

        U-Boot啟動(dòng)流程主要分為兩個(gè)階段:CPU初始化和目標(biāo)板初始化。CPU初始化階段中通過(guò)匯編語(yǔ)言初始化SoC芯片相關(guān)硬件,如設(shè)置CPU模式、關(guān)閉MMU、初始化DDR和時(shí)鐘等,以及準(zhǔn)備C語(yǔ)言運(yùn)行環(huán)境。在準(zhǔn)備好C語(yǔ)言運(yùn)行環(huán)境后,CPU便可以處理C程序了,這時(shí)如初始化目標(biāo)板外設(shè),檢測(cè)系統(tǒng)內(nèi)存映射,啟動(dòng)內(nèi)核等C程序?qū)⒈贿\(yùn)行,如圖1所示。

        圖1 U-Boot啟動(dòng)流程

        2 U-Boot移植流程

        2.1 編譯環(huán)境搭建

        由于SoC芯片平臺(tái)與PC平臺(tái)芯片架構(gòu)不同,需要在PC平臺(tái)搭建SoC平臺(tái)的編譯環(huán)境完成系統(tǒng)編譯,編譯后的鏡像燒錄到目標(biāo)板中運(yùn)行。本文采用基于ARM內(nèi)核SoC芯片,交叉編譯工具使用ARM官方提供的arm-linux-gcc編譯工具,并在Linux系統(tǒng)下完成交叉編譯環(huán)境的構(gòu)建。

        2.2 移植文件介紹

        本文基于DENX官方U-Boot2016-3完成SoC芯片適配和目標(biāo)板適配。參考第1.2節(jié)U-Boot啟動(dòng)流程,U-Boot主要分為兩類(lèi)文件:芯片啟動(dòng)文件和目標(biāo)板描述文件,主要包含UBoot官方提供的已適配芯片平臺(tái)和目標(biāo)板文件,如圖2所示。

        圖2 U-Boot文件目錄

        arch/、board/、drivers/這3個(gè)文件目錄包括芯片、目標(biāo)板相關(guān)信息,U-Boot移植主要工作是在這3個(gè)目錄下添加芯片及目標(biāo)板適配程序和配置文件等,見(jiàn)表1。

        表1 芯片及目標(biāo)板相關(guān)文件目錄

        2.3 移植步驟介紹

        芯片適配主要完成SoC芯片內(nèi)核架構(gòu)適配以確保內(nèi)核完成初始化、程序自拷貝、啟動(dòng)運(yùn)行等一系列的工作。本文所適配的控制器芯片為ARM架構(gòu),U-Boot提供了完整的適配程序,我們可將相應(yīng)內(nèi)核目錄下Kconfig文件中內(nèi)核名應(yīng)用到目標(biāo)板適配的配置文件中即可。

        對(duì)于目標(biāo)板適配,是將目標(biāo)板所用的SoC芯片外設(shè)信息數(shù)據(jù)配置到U-Boot程序中,主要有以下步驟。

        1)在board/目標(biāo)板目錄下創(chuàng)建目標(biāo)板目錄,包括Kconfig、Maintainers、Makefile以及${boardname}.c程序4種文件,如圖3所示。

        圖3 board/目錄下文件

        其中,Makefile文件中加入指定編譯對(duì)象文件:

        MAINTAINERS中添加指定配置相關(guān)文件目錄:

        Kconfig中添加配置編譯信息:

        myboard.c程序中主要負(fù)責(zé)分配外設(shè)GPIO接口,以及完成驅(qū)動(dòng)初始化工作,如I2C、EMMC、USB等,在其中加入初始化程序以及GPIO配置宏定義。

        2)在include/configs目錄下新建目標(biāo)板配置頭文件${boardname}.h,通過(guò)宏定義存放配置信息,這里創(chuàng)建myboard.h文件:

        通過(guò)宏定義配置啟動(dòng)boot地址、串口波特率、Fuses、GPIO、文件系統(tǒng)支持等,添加以下配置選項(xiàng)。

        此外,根據(jù)需要使用的外設(shè)完成配置項(xiàng),表示使用該外設(shè),如以太網(wǎng)、MMC、I2C、USB等,也包括U-Boot默認(rèn)環(huán)境變量的定義,添加如以下配置選項(xiàng):

        3)根據(jù)CPU架構(gòu),在arch/各級(jí)目錄下(表1)Kconfig文件中添加目標(biāo)板配置信息,arch/下Kconfig中添加CPU和目標(biāo)板配置信息、設(shè)備信息和編譯頭文件名稱(chēng),并將第一級(jí)配置信息名稱(chēng)添加到defconfig文件中,常用配置關(guān)鍵字如表2所示。

        表2 Kconfig關(guān)鍵字

        根據(jù)本文芯片架構(gòu),調(diào)用ARMv8目錄的所有程序,以及設(shè)備驅(qū)動(dòng)模型程序,添加配置信息如下:config TARGET_MYBOARD

        4)在configs/目錄下新建defconfig配置文件,存放各級(jí)Kconfig的具體配置:

        myboard_defconfig文件中配置項(xiàng)用于確定Kconfig中哪些配置項(xiàng)被激活,即最終編譯哪些文件,本文采用芯片基于ARM架構(gòu),并已構(gòu)建目標(biāo)板配置文件myboard.h,以及在arch/Kconfig中完成配置信息聲明,如使用新添加的

        3 實(shí)驗(yàn)驗(yàn)證

        完成移植后,根目錄下執(zhí)行命令配置編譯目標(biāo)設(shè)備并開(kāi)始編譯:

        通過(guò)交叉編譯環(huán)境完成U-Boot鏡像編譯后,使用燒錄工具將鏡像燒錄到SD卡中。如圖4所示,編譯生成的u-boot.bin為燒錄所需的鏡像文件,一般芯片啟動(dòng)會(huì)需要如校驗(yàn)等具有固定格式數(shù)據(jù)信息,所以只燒錄u-boot.bin通常無(wú)法成功啟動(dòng)U-Boot。根據(jù)芯片手冊(cè)定義的芯片啟動(dòng)數(shù)據(jù)格式,將數(shù)據(jù)按格式要求添加到SD卡中,保證SD卡燒錄的所有數(shù)據(jù)能夠正確啟動(dòng)芯片。

        圖4 U-Boot編譯結(jié)果

        燒錄鏡像前通過(guò)fdisk命令對(duì)SD卡分區(qū),并通過(guò)mkfs.vfat命令格式化分區(qū)。本文通過(guò)dd命令將鏡像拷貝到SD卡中,根據(jù)芯片啟動(dòng)流程及數(shù)據(jù)格式,設(shè)置參數(shù)以確定數(shù)據(jù)寫(xiě)入位置。

        通過(guò)SD卡啟動(dòng)目標(biāo)板中,根據(jù)CPU啟動(dòng)流程,內(nèi)部ROM執(zhí)行初始化后會(huì)完成自拷貝,通過(guò)將SD卡指定位置的數(shù)據(jù)拷貝到RAM中執(zhí)行,后續(xù)程序開(kāi)始執(zhí)行,測(cè)試U-Boot系統(tǒng)開(kāi)始運(yùn)行,如圖5所示。

        圖5 U-Boot啟動(dòng)運(yùn)行界面

        本文通過(guò)U-Boot能否加載系統(tǒng)內(nèi)核并掛載文件系統(tǒng)測(cè)試移植是否成功,采用內(nèi)核版本為L(zhǎng)inux Kernel4.1.15。如圖6所示,通過(guò)設(shè)置U-Boot環(huán)境變量參數(shù),通過(guò)nfs服務(wù)遠(yuǎn)程加載PC服務(wù)端內(nèi)核鏡像及根文件系統(tǒng)文件,能夠成功啟動(dòng)操作系統(tǒng)。

        圖6 U-Boot引導(dǎo)啟動(dòng)操作系統(tǒng)

        圖6中所示,通過(guò)U-Boot命令設(shè)置環(huán)境變量可指定系統(tǒng)內(nèi)核啟動(dòng)位置,由于本文通過(guò)nfs服務(wù)從上位機(jī)加載內(nèi)核及文件系統(tǒng),所以需要設(shè)置網(wǎng)絡(luò)IP地址等信息,如本文設(shè)置IP采用以下命令。

        4 結(jié)論

        綜上,U-Boot減少了芯片及目標(biāo)板適配的難度及周期,達(dá)到了快速移植操作系統(tǒng)的目的,其靈活性和易用性提高了開(kāi)發(fā)效率。此外,移植U-Boot需要對(duì)SoC芯片的啟動(dòng)流程及U-Boot軟件架構(gòu)有清晰的理解和掌握,這對(duì)理解操作系統(tǒng)原理也具有參考意義和價(jià)值。

        猜你喜歡
        內(nèi)核架構(gòu)啟動(dòng)
        基于FPGA的RNN硬件加速架構(gòu)
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        群眾路線(xiàn)是百年大黨成功之內(nèi)核性制度因素的外在表達(dá)
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        霧霾來(lái)襲 限產(chǎn)再次啟動(dòng)
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
        安發(fā)生物啟動(dòng)2017
        一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
        亚洲自偷精品视频自拍| 亚洲 国产 韩国 欧美 在线| 伊人久久大香线蕉综合av | 国产精品一区二区三区免费视频| 无码aⅴ免费中文字幕久久| 色爱区综合激情五月综合小说| 亚洲人成网站www| 少妇高潮精品在线观看| 久久婷婷五月综合97色一本一本| 超薄肉色丝袜一区二区| 国产精品美女久久久久浪潮AVⅤ| 91九色熟女潮喷露脸合集| 女人被爽到高潮视频免费国产| 精品人体无码一区二区三区 | 四川老熟妇乱子xx性bbw| 国产成+人+综合+亚洲专| 精品国产一区二区三区九一色| 欧美性猛交xxxx乱大交极品| 少妇装睡让我滑了进去| 人妻无码在线免费| 亚洲第一女优在线观看| 亚洲爆乳无码专区www| 欧美疯狂做受xxxxx高潮| 白白青青视频在线免费观看| 亚洲av高清天堂网站在线观看| 国产亚洲2021成人乱码| 成年女人免费v片| 美女人妻中文字幕av| 亚洲av丰满熟妇在线播放| 亚洲精品网站在线观看你懂的| 国产成人aa在线观看视频| 日本一区二区三区高清视| 亚洲av无码一区二区三区天堂古代| 就去吻亚洲精品欧美日韩在线| 亚洲高清一区二区三区视频| av在线观看一区二区三区| 无码人妻精品一区二区三区下载| 国产国拍亚洲精品福利| 国产成人亚洲精品91专区高清| 国产日产欧产精品精品| 人妻无码Aⅴ中文系列|