BM3823的操作系統(tǒng)移植和驅(qū)動開發(fā)
發(fā)布時間:2021-06-27 16:29
隨著航天事業(yè)的不斷發(fā)展,對航天器中操作系統(tǒng)的可靠性和功能多樣性的要求越來越高。但開發(fā)專用的航天操作系統(tǒng)價格十分昂貴,而Linux操作系統(tǒng)源碼開放,將Linux移植到航天器件中開發(fā)成本較低。同時Linux性能優(yōu)異、運行可靠、可擴張性強非常有利于開發(fā),支持多種架構(gòu)類型,可以根據(jù)不同硬件結(jié)構(gòu)進行按需裁剪,逐漸被應(yīng)用在航天領(lǐng)域,所以研究移植Linux操作系統(tǒng)到航天器件中具有重要意義。本文基于BM3823開發(fā)板,研究和實現(xiàn)移植Linux操作系統(tǒng)。為了正確加載Linux,在分析SPARC V8架構(gòu)基礎(chǔ)上,先實現(xiàn)移植U-Boot。在U-Boot中建立對應(yīng)硬件的設(shè)備樹結(jié)構(gòu),完成向Linux傳遞啟動參數(shù)和設(shè)備樹結(jié)構(gòu)的功能,將U-Boot作為Bootloader引導(dǎo)Linux啟動。分析Linux操作系統(tǒng)結(jié)構(gòu)和機制后,在Linux中實現(xiàn)基于SPARC V8架構(gòu)的啟動過程,完成Linux解析傳入的啟動參數(shù)和設(shè)備樹結(jié)構(gòu),初始化MMU,掛載根文件系統(tǒng)后運行應(yīng)用程序等功能。在BM3823開發(fā)板上,用U-Boot引導(dǎo)Linux鏡像文件正確運行,并對Linux操作系統(tǒng)進行測試。為了完善Linux操作系統(tǒng)的功能,在成功移...
【文章來源】:哈爾濱工業(yè)大學(xué)黑龍江省 211工程院校 985工程院校
【文章頁數(shù)】:75 頁
【學(xué)位級別】:碩士
【部分圖文】:
BM3823硬件實物圖
哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文-15-……console_setfile(stdout,outputdev);(3)定義leon_prom_info結(jié)構(gòu)體類型變量pspi,用于U-Boot向Linux傳遞參數(shù),代碼如下:kernel_arg_promvec=&pspi->romvec;pspi->dtb_offset=(((unsignedint)(gd->fdt_blob))&0x0fffffff)|PAGE_OFFSET;最后調(diào)用main.c文件中的main_loop函數(shù),進入命令循環(huán)。至此,U-Boot會一直等待用戶從串口輸入命令。如果外設(shè)能正常運行且有對應(yīng)的驅(qū)動程序,用戶輸入控制外設(shè)的命令后,U-Boot程序?qū)斎朊钪械膮?shù)進行保存,根據(jù)指令參數(shù)執(zhí)行相關(guān)的代碼,最后調(diào)用驅(qū)動程序,對外設(shè)進行操作。2.2.4設(shè)備樹結(jié)構(gòu)分析及設(shè)計設(shè)備樹文件是一種描述硬件的數(shù)據(jù)結(jié)構(gòu),它通過Bootloader將硬件相關(guān)信息傳給內(nèi)核。設(shè)備樹可以描述的信息包括CPU的數(shù)量和類型、總線相關(guān)屬性、中斷控制器、外設(shè)相關(guān)控制器的基地址和以及外設(shè)的一些屬性。設(shè)備樹的主要優(yōu)點是,對于同一SoC的不同主板,只需更換設(shè)備樹文件即可實現(xiàn)不同主板的無差異支持,而無需更換內(nèi)核文件。此外,如果需要對外設(shè)中一些參數(shù)進行設(shè)置,只需要修改設(shè)備樹文件中相應(yīng)的參數(shù)值,便于代碼的維護和開發(fā)。本課題中的DTS文件選擇使用嵌入式配置方式,U-Boot會將設(shè)備樹二進制文件嵌入到U-Boot鏡像中,設(shè)備樹文件應(yīng)該是.dts格式,通過設(shè)備樹編譯工具編譯后生成.dtb二進制文件,該文件會在board_init_f()函數(shù)中通過全局?jǐn)?shù)據(jù)結(jié)構(gòu)gd->blob進行調(diào)用。DTS文件路徑是../arch/sparc/dts/bmti3823a.dts,該文件描述了硬件相關(guān)信息,包括CPU、AHB總線以及各種外設(shè)等。在每個硬件信息中,詳細(xì)描述了起始地址、地址長度,中斷號、時鐘頻率、以及掛載的子設(shè)備相關(guān)信息。以timer外設(shè)為例,設(shè)備樹代碼如圖2-6所示。圖2-6timer外設(shè)設(shè)備樹代碼
哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文-24-對于以上命令中的各個參數(shù)解釋如表2-6所示。表中參數(shù)可以根據(jù)BM3823開發(fā)板不同配置進行更改。例如,可以設(shè)置其它COM口進行連接,可以降低波特率提高連接穩(wěn)定性等。成功連接后,CMD窗口會顯示連接成功相關(guān)信息。表2-6Grmon連接指令各個參數(shù)含義指令中參數(shù)參數(shù)含義Grmon使用grmon相關(guān)指令-leon2為LEON2系統(tǒng)配置Grmon-uartcom6連接DSU接口對應(yīng)的COM口-ni檢測所有系統(tǒng)設(shè)備,但不進行初始化-baud921600設(shè)置波特率為921600BM3823啟動時有兩種模式,分別是調(diào)試模式和運行模式,通過配置DSUBRE和DSUEN信號選擇其中一種模式。如果上電時DSUBRE和DSUEN信號同時為高電平,則進入調(diào)試模式,等待接收來自DSU的調(diào)試命令,此時可以下載程序進行調(diào)試。如果上電時DSUBRE和DSUEN信號同時為低電平,則進入運行模式,自動從0x0地址開始執(zhí)行。為了使BM3823啟動時既能從0x0地址直接執(zhí)行,也能接受來自DSU的調(diào)試命令,將DSUEN信號設(shè)置為高電平,DSUBRE信號設(shè)置為低電平。U-Boot啟動方式有兩種:(1)在BM3823開發(fā)板上電后,將U-Boot鏡像加載到SDRAM中運行。因為SDRAM起始地址是0x20000000,所以修改源碼中的.config文件,將鏡像起始運行地址設(shè)置為0x20000000并編譯;將PC和BM3823開發(fā)板串口1連接后,使用串口終端,連接BM3823開發(fā)板串口1;使用Grmon工具連接BM3823開發(fā)板后,加載u-boot文件到SDRAM中并運行的命令如下:loadu-boot加載完成后如圖2-13所示。圖2-13加載完u-boot的打印信息
【參考文獻(xiàn)】:
期刊論文
[1]RTEMS的基本架構(gòu)與移植技術(shù)的研究[J]. 陳金忠,耿銳. 單片機與嵌入式系統(tǒng)應(yīng)用. 2020(03)
[2]U-Boot啟動過程和代碼分析[J]. 葛耿育,秦中. 遵義師范學(xué)院學(xué)報. 2019(06)
[3]淺談面向航天系統(tǒng)的嵌入式操作系統(tǒng)實時性評測[J]. 李苗偉,馮東. 科技創(chuàng)新導(dǎo)報. 2019(23)
[4]U-boot引導(dǎo)linux操作系統(tǒng)的過程分析[J]. 徐玄斐. 淮北職業(yè)技術(shù)學(xué)院學(xué)報. 2019(03)
[5]Linux與VxWorks的任務(wù)調(diào)度研究及應(yīng)用[J]. 查榮明. 信息與電腦(理論版). 2018(11)
[6]基于Zynq-7000的嵌入式Linux移植[J]. 張朝元,邵高平,汪洋. 電子科技. 2018(01)
[7]基于SPARC多核SOC的Linux操作系統(tǒng)研究[J]. 王海峰,蔣曉華. 航天控制. 2017(03)
[8]U-Boot移植過程中兩種代碼重定位技術(shù)研究[J]. 郭國法,董輝,張開生. 單片機與嵌入式系統(tǒng)應(yīng)用. 2017(06)
[9]扁平設(shè)備樹FDT在ARM Linux中的應(yīng)用研究[J]. 羅名駒,陳益民,賈志文. 單片機與嵌入式系統(tǒng)應(yīng)用. 2017(03)
[10]一種面向航天的可靠實時操作系統(tǒng)設(shè)計[J]. 詹盼盼,郭堅,何熊文,張紅軍. 空間控制技術(shù)與應(yīng)用. 2016(05)
碩士論文
[1]基于龍芯1E的實時Linux系統(tǒng)移植與裁剪[D]. 王樸.中國科學(xué)院大學(xué)(中國科學(xué)院國家空間科學(xué)中心) 2019
[2]基于AHB總線協(xié)議的DMA控制器設(shè)計[D]. 卞學(xué)愚.西安電子科技大學(xué) 2018
[3]基于ARM Cortex-A9的嵌入式Linux內(nèi)核移植研究與實現(xiàn)[D]. 羅名駒.廣東工業(yè)大學(xué) 2017
本文編號:3253200
【文章來源】:哈爾濱工業(yè)大學(xué)黑龍江省 211工程院校 985工程院校
【文章頁數(shù)】:75 頁
【學(xué)位級別】:碩士
【部分圖文】:
BM3823硬件實物圖
哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文-15-……console_setfile(stdout,outputdev);(3)定義leon_prom_info結(jié)構(gòu)體類型變量pspi,用于U-Boot向Linux傳遞參數(shù),代碼如下:kernel_arg_promvec=&pspi->romvec;pspi->dtb_offset=(((unsignedint)(gd->fdt_blob))&0x0fffffff)|PAGE_OFFSET;最后調(diào)用main.c文件中的main_loop函數(shù),進入命令循環(huán)。至此,U-Boot會一直等待用戶從串口輸入命令。如果外設(shè)能正常運行且有對應(yīng)的驅(qū)動程序,用戶輸入控制外設(shè)的命令后,U-Boot程序?qū)斎朊钪械膮?shù)進行保存,根據(jù)指令參數(shù)執(zhí)行相關(guān)的代碼,最后調(diào)用驅(qū)動程序,對外設(shè)進行操作。2.2.4設(shè)備樹結(jié)構(gòu)分析及設(shè)計設(shè)備樹文件是一種描述硬件的數(shù)據(jù)結(jié)構(gòu),它通過Bootloader將硬件相關(guān)信息傳給內(nèi)核。設(shè)備樹可以描述的信息包括CPU的數(shù)量和類型、總線相關(guān)屬性、中斷控制器、外設(shè)相關(guān)控制器的基地址和以及外設(shè)的一些屬性。設(shè)備樹的主要優(yōu)點是,對于同一SoC的不同主板,只需更換設(shè)備樹文件即可實現(xiàn)不同主板的無差異支持,而無需更換內(nèi)核文件。此外,如果需要對外設(shè)中一些參數(shù)進行設(shè)置,只需要修改設(shè)備樹文件中相應(yīng)的參數(shù)值,便于代碼的維護和開發(fā)。本課題中的DTS文件選擇使用嵌入式配置方式,U-Boot會將設(shè)備樹二進制文件嵌入到U-Boot鏡像中,設(shè)備樹文件應(yīng)該是.dts格式,通過設(shè)備樹編譯工具編譯后生成.dtb二進制文件,該文件會在board_init_f()函數(shù)中通過全局?jǐn)?shù)據(jù)結(jié)構(gòu)gd->blob進行調(diào)用。DTS文件路徑是../arch/sparc/dts/bmti3823a.dts,該文件描述了硬件相關(guān)信息,包括CPU、AHB總線以及各種外設(shè)等。在每個硬件信息中,詳細(xì)描述了起始地址、地址長度,中斷號、時鐘頻率、以及掛載的子設(shè)備相關(guān)信息。以timer外設(shè)為例,設(shè)備樹代碼如圖2-6所示。圖2-6timer外設(shè)設(shè)備樹代碼
哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文-24-對于以上命令中的各個參數(shù)解釋如表2-6所示。表中參數(shù)可以根據(jù)BM3823開發(fā)板不同配置進行更改。例如,可以設(shè)置其它COM口進行連接,可以降低波特率提高連接穩(wěn)定性等。成功連接后,CMD窗口會顯示連接成功相關(guān)信息。表2-6Grmon連接指令各個參數(shù)含義指令中參數(shù)參數(shù)含義Grmon使用grmon相關(guān)指令-leon2為LEON2系統(tǒng)配置Grmon-uartcom6連接DSU接口對應(yīng)的COM口-ni檢測所有系統(tǒng)設(shè)備,但不進行初始化-baud921600設(shè)置波特率為921600BM3823啟動時有兩種模式,分別是調(diào)試模式和運行模式,通過配置DSUBRE和DSUEN信號選擇其中一種模式。如果上電時DSUBRE和DSUEN信號同時為高電平,則進入調(diào)試模式,等待接收來自DSU的調(diào)試命令,此時可以下載程序進行調(diào)試。如果上電時DSUBRE和DSUEN信號同時為低電平,則進入運行模式,自動從0x0地址開始執(zhí)行。為了使BM3823啟動時既能從0x0地址直接執(zhí)行,也能接受來自DSU的調(diào)試命令,將DSUEN信號設(shè)置為高電平,DSUBRE信號設(shè)置為低電平。U-Boot啟動方式有兩種:(1)在BM3823開發(fā)板上電后,將U-Boot鏡像加載到SDRAM中運行。因為SDRAM起始地址是0x20000000,所以修改源碼中的.config文件,將鏡像起始運行地址設(shè)置為0x20000000并編譯;將PC和BM3823開發(fā)板串口1連接后,使用串口終端,連接BM3823開發(fā)板串口1;使用Grmon工具連接BM3823開發(fā)板后,加載u-boot文件到SDRAM中并運行的命令如下:loadu-boot加載完成后如圖2-13所示。圖2-13加載完u-boot的打印信息
【參考文獻(xiàn)】:
期刊論文
[1]RTEMS的基本架構(gòu)與移植技術(shù)的研究[J]. 陳金忠,耿銳. 單片機與嵌入式系統(tǒng)應(yīng)用. 2020(03)
[2]U-Boot啟動過程和代碼分析[J]. 葛耿育,秦中. 遵義師范學(xué)院學(xué)報. 2019(06)
[3]淺談面向航天系統(tǒng)的嵌入式操作系統(tǒng)實時性評測[J]. 李苗偉,馮東. 科技創(chuàng)新導(dǎo)報. 2019(23)
[4]U-boot引導(dǎo)linux操作系統(tǒng)的過程分析[J]. 徐玄斐. 淮北職業(yè)技術(shù)學(xué)院學(xué)報. 2019(03)
[5]Linux與VxWorks的任務(wù)調(diào)度研究及應(yīng)用[J]. 查榮明. 信息與電腦(理論版). 2018(11)
[6]基于Zynq-7000的嵌入式Linux移植[J]. 張朝元,邵高平,汪洋. 電子科技. 2018(01)
[7]基于SPARC多核SOC的Linux操作系統(tǒng)研究[J]. 王海峰,蔣曉華. 航天控制. 2017(03)
[8]U-Boot移植過程中兩種代碼重定位技術(shù)研究[J]. 郭國法,董輝,張開生. 單片機與嵌入式系統(tǒng)應(yīng)用. 2017(06)
[9]扁平設(shè)備樹FDT在ARM Linux中的應(yīng)用研究[J]. 羅名駒,陳益民,賈志文. 單片機與嵌入式系統(tǒng)應(yīng)用. 2017(03)
[10]一種面向航天的可靠實時操作系統(tǒng)設(shè)計[J]. 詹盼盼,郭堅,何熊文,張紅軍. 空間控制技術(shù)與應(yīng)用. 2016(05)
碩士論文
[1]基于龍芯1E的實時Linux系統(tǒng)移植與裁剪[D]. 王樸.中國科學(xué)院大學(xué)(中國科學(xué)院國家空間科學(xué)中心) 2019
[2]基于AHB總線協(xié)議的DMA控制器設(shè)計[D]. 卞學(xué)愚.西安電子科技大學(xué) 2018
[3]基于ARM Cortex-A9的嵌入式Linux內(nèi)核移植研究與實現(xiàn)[D]. 羅名駒.廣東工業(yè)大學(xué) 2017
本文編號:3253200
本文鏈接:http://sikaile.net/kejilunwen/shengwushengchang/3253200.html
最近更新
教材專著