日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于龍芯2F架構的PMON分析與優(yōu)化

摘要:基本輸入/輸出系統(tǒng)(BIOS)是現代計算機系統(tǒng)的重要組成部分,負責計算機系統(tǒng)的開機自檢、板級初始化、加載操作系統(tǒng)內核以及基本I/O功能。以龍芯2F CPU架構為研究背景,在其基礎上分析了PMON的系統(tǒng)結構與工作流程,通過添加網絡驅動程序,最終實現通過PMON加載Linux和VxWorks操作系統(tǒng)。進行必要的功能完善與性能優(yōu)化,并經過嚴格的測試以排除可能存在的深層次缺陷,實現了一個性能穩(wěn)定、功能完善、高可靠性的能與國產龍芯2F處理器平臺緊密搭配的BIOS。
關鍵詞:BIOS;CPU;龍芯2F處理器;PMON

    龍芯CPU使用PMON作為基本輸入輸出系統(tǒng)(BIOS)。PMON具有強大而豐富的功能,除基本的I/O功能外,還包括硬件初始化與檢測、操作系統(tǒng)引導和程序調試等功能。PMON早期的版本功能少且擴展性不好?,F在龍芯CPU上使用的PMON添加了硬盤和其他文件系統(tǒng)的支持,以及顯卡的支持等。本文在深入分析PMON源碼的前提下,添加了82551網卡驅動以便以網絡下載加載操作系統(tǒng)內核,并對移植好的PMON系統(tǒng)進行了功能、性能和穩(wěn)定性等方面的測試以適應某些重要領域對計算機系統(tǒng)高可靠性要求。通過專門的測試程序來實現此任務,并且盡量保證高的測試覆蓋性。

1 基于龍芯2F架構的PMON分析
1.1 PMON執(zhí)行流程分析
    在龍芯2F CPU上電之初,內存和內存控制器處于不確定狀態(tài),因此CPU開始執(zhí)行的BIOS代碼只能放在非易失性介質中。PMON的二進制代碼就存放于主板上一塊512 KB的FLASH芯片上,其虛擬地址為0xBFC00000,物理地址是0x1FC00000。
    由于在ROM FLASH運行的速度比較慢,并且空間有限,不能隨時更改ROM中的內容,就需要把引導程序搬到內存里運行。因此,PMON的運行過程分為兩個階段:第一階段是在ROM FLASH中運行,主要進行基本硬件初始化,如:北橋、南橋、內存控制器、緩存和串口初始化等;第二階段在內存中執(zhí)行,主要完成環(huán)境變量和基本數據結構的初始化、PCI總線掃描和設備初始化,顯卡初始化、網絡協議和設備初始化,并對搜索到的PCI總線上的設備進行驅動程序的加載與配置等,最后加載操作系統(tǒng)內核。
1.2 PMON在ROM中的執(zhí)行流程
    龍芯CPU開始執(zhí)行的指令將CP0控制寄存器的狀態(tài)寄存器和原因寄存器清零,讓CPU處于內核模式。這是因為MIPS CPU啟動時,必須定義足夠的CPU控制寄存器狀態(tài),以使CPU能執(zhí)行非緩存的指令。在對緩存初始化之前,不能訪問緩存。非緩存的異常入口在0xBFC00000,但此處沒有足夠的空間存放啟動代碼,于是設計了一個跳轉。這個跳轉可以測試CPU是否正常工作。如果硬件發(fā)生了某種嚴重的錯誤,可能會導致CPU嚴重的異常。如果CPU正常啟動起來并跳轉到了正確的位置并執(zhí)行了預先設計的指令,就可以相信CPU正常,某些硬件正常。跳轉之后,PMON進行一系列的初始化與測試工作,這個過程如圖1所示。

[!--empirenews.page--]
1.3 PMON在內存中的執(zhí)行流程
    PMON在內存中的執(zhí)行過程非常復雜,下面按照其執(zhí)行流程分析主要的函數:
    _init():主要功能是順序執(zhí)行初始化。列表上的所有函數,建立必要的數據結構和編譯環(huán)境。初始化列表上的函數主要可以分為3類:命令初始化函數,文件系統(tǒng)初始化函數,可執(zhí)行文件初始化函數。
    Evenint():環(huán)境變量初始化函數,這些環(huán)境變量解釋并執(zhí)行不同的命令。它們對PMON來說是必需的,用戶可以定義另外的變量來保存任何字符串,如文件名和命令符等。
    Tgt_devinit():主要功能是南橋初始化和PCI設備初始化。其中南橋初始化函數是cs5536_init()。PCI設備初始化由函數_pci_businit()完成,分為兩步;先是北橋初始化,然后是設備初始化,包括對設備的掃描和設備所需資源的分配。PCI設備的初始化部分是PMON分析中的難點。
    Init_net():主要進行了如下的工作;虛擬內存初始化等;用_pci_deviceinit函數完成了PCI配置空間的參數初始化,并且初始化顯卡;網絡系統(tǒng)的初始化包括網絡設備的初始化和協議的配置等。
    最后加載操作系統(tǒng)內核。這里會用到兩個重要的命令Load和g。Load命令用于加載文件(內核)到內存,g命令執(zhí)行內核文件。加載了內核文件之后就可以通過g命令來執(zhí)行內核。

2 基于龍芯2F架構的PMON修改與優(yōu)化
2.1 添加82551網卡驅動
    網卡是一個PCI設備,所以其驅動在PCI設備初始化時實現。對于PCI設備,有一個重要的數據結構struct cfdata cfdata,這個數組是根據具體平臺的配置文件生成的,以下是配置文件的相關部分:
   
    這個部分描述了設備之間的鏈接關系,cfdata是這個關系的數組表示。另外還有一個PV數組定義一個設備的父設備,每個節(jié)點的父設備都是一個數組,在設備的cfdata結構中定義數組的開始。
    上述配置文件中的fxp0表示的就是網卡設備。因為fxp0是PCI子設備,因此在查找PCI子設備時,其4個子設備:fxp0,rtkO,ohci,pci-ide的驅動也會在此時加載。查找設備有一個函數:config_found,其會調用config_serch,config_search從靜態(tài)設備樹cfdata中查找當前設備的子設備,然后對設備調用mapply函數,進行設備的匹配,如果設備存在則會調用該設備的ca_attach函數來加載設備的驅動程序。這里找到網卡設備之后會調用fxp_attach函數。在設計的網卡驅動中,實現了操作系統(tǒng)將怎樣通過網卡驅動來講網絡包發(fā)送出去,而網卡收到網絡數據包之后怎樣通過操作系統(tǒng)來做后續(xù)處理。在PMON中,網卡中斷通過查詢來實現。fxp_attach函數會調用pci_intr_establish將中斷程序注冊到查詢列表poll_list上。網口要將數據包發(fā)送出去,就必須提供一個網絡接口,以提供給發(fā)送函數。在這里,將網絡數據包放在網絡接口的ifp→if_snd隊列中,然后啟動if_start來開始發(fā)送。在網卡發(fā)送完一個包后,檢查發(fā)送隊列,如果有剩余則繼續(xù)發(fā)送,直到發(fā)送完畢。然后通過函數e100_poll來檢查是否收到包,并進行收包處理。先進行緩沖區(qū)的清除,使能接收隊列,查詢是否有數據可接收,有則開始接收。無則繼續(xù)查詢并發(fā)出信息。[!--empirenews.page--]
2.2 編譯PMON
    添加好了網卡驅動程序之后,需要對PMON進行重新配置和編譯。配置和編譯的過程如下。主要用到幾條命令:
    
    通過網絡來更新PMON時使用下面的命令:load-f 0xbfc00000-r tftp://192.16.12.30來進行PMON的在線燒寫。并通過網絡來加載操作系統(tǒng):load tftp://192.16.12.30/VxWorks.如果加載系統(tǒng)內核成功則驗證了網卡驅動的有效。


3 系統(tǒng)測試
3.1 系統(tǒng)啟動階段網卡測試
    由于啟動階段網卡只用于加載操作系統(tǒng)內核,對性能并沒有太高要求。只需測試其功能即可。通過在啟動過程中用另外一臺主機對其進行ping操作來測試其功能。其界面如圖2所示。


3.2 系統(tǒng)啟動時間測試
    經過測試,在硬盤啟動模式下,系統(tǒng)從加電到操作系統(tǒng)啟動完畢耗時不超過35 s,符合絕大部分應用需求。
3.3 500次開關機測試
    為測試移植后的系統(tǒng)POST功能的穩(wěn)定性,進行了500次開關機實驗。經驗證,成功啟動次數為500,失敗次數為0,成功率100%。
3.4 200 h老練測試
    為測試PMON在系統(tǒng)運行時的穩(wěn)定性,用專用的整機測試軟件進行了200 h老練測試。經測試,系統(tǒng)運行正常,未出現故障,測試合格。

 

4 結語
    為了適應PMON在國產計算機系統(tǒng)中的需求,對其進行了分析與優(yōu)化。在分析了源碼的基礎上,對其進行了必要的修改與優(yōu)化,增加了82551網卡的驅動等。為了驗證優(yōu)化后系統(tǒng)的穩(wěn)定性,進行了一系列的測試驗證,包括啟動階段的網絡測試、系統(tǒng)啟動時間測量、500次開
關機測試以及200 h老練測試等。經驗證,修改后的PMON系統(tǒng)運行穩(wěn)定,可以在多個重要領域中進行應用。
 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉