當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:為了驅(qū)動基于PPC8270的底層硬件環(huán)境,達到為操作系統(tǒng)提供穩(wěn)定運行環(huán)境和標準軟件接口的目的,通過對PPC8270內(nèi)部寄存器的基本結(jié)構(gòu)、內(nèi)部存儲空間映射和BSP軟件的研究,以及目標機硬件環(huán)境初始化和硬件驅(qū)動的開發(fā)

摘要:為了驅(qū)動基于PPC8270的底層硬件環(huán)境,達到為操作系統(tǒng)提供穩(wěn)定運行環(huán)境和標準軟件接口的目的,通過對PPC8270內(nèi)部寄存器的基本結(jié)構(gòu)、內(nèi)部存儲空間映射和BSP軟件的研究,以及目標機硬件環(huán)境初始化和硬件驅(qū)動的開發(fā),完成了基于PPC8270的BSP軟件開發(fā)。經(jīng)過操作系統(tǒng)運行試驗證明,該BSP軟件很好地實現(xiàn)了其中間層軟件的功能,達到了預(yù)定的開發(fā)目的。
關(guān)鍵詞:PPC8270;BSP;硬件驅(qū)動程序;底層硬件

0 引言
    PPC8270是一款通用的通信協(xié)議處理器芯片,片上集成了高性能的PPC精簡指令系統(tǒng)微處理器、非常靈活的系統(tǒng)集成單元以及多種通信協(xié)議控制器以支持不同的應(yīng)用,特別是在通信及網(wǎng)絡(luò)系統(tǒng)的應(yīng)用環(huán)境中有著十分廣泛的應(yīng)用。基于PPC8270的BSP開發(fā)為上層系統(tǒng)軟件操作底層硬件環(huán)境提供了豐富而有效的軟件接口,進而為應(yīng)用軟件的開發(fā)提供有力的支持。

1 PPC8270處理器介紹
1.1 PPC8270內(nèi)部寄存器基本結(jié)構(gòu)
    PPC8270采用G2_LE內(nèi)核,該內(nèi)核設(shè)計繼承了G2內(nèi)核與PPC603e內(nèi)核的設(shè)計,其寄存器可根據(jù)訪問權(quán)限分為用戶模式(USER MODEL)與超級模式(SUPERVISOR MODEL)。
1.2 PPC8270內(nèi)部存儲器空間
    在超級模式下,PPC8270所有內(nèi)部寄存器均可被訪問,而在用戶模式下,只有部分寄存器可被訪問,其內(nèi)部寄存器訪問定義如圖1所示。


    PPC8270擁有256 KB內(nèi)部存儲空間,該內(nèi)部存儲空間被影射在一塊4 GB范圍內(nèi)連續(xù)的內(nèi)存空間上,可根據(jù)IMMR(Internal Memory Map Register)寄存器設(shè)置該內(nèi)部存儲空間起始地址,本開發(fā)實例設(shè)置IMMR值為0xF0000000;PPC8270內(nèi)部存儲空間映射如圖2所示。


    PPC8270內(nèi)部寄存器均通過IMMR值與寄存器偏移量進行尋址,從而完成BSP開發(fā)中對內(nèi)部寄存器的讀/寫訪問。

2 BSP軟件的定義與職責(zé)
2.1 BSP軟件的定義
    所謂BSP軟件通常是指針對具體的硬件平臺、用戶編寫的驅(qū)動代碼和部分設(shè)備驅(qū)動的集合。它所實現(xiàn)的功能包括初始化、驅(qū)動部分設(shè)備。BSP軟件是介于底層硬件設(shè)備環(huán)境和上層操作系統(tǒng)之間的一個軟件接口,它的主要功能是系統(tǒng)加電后初始化目標機硬件、初始化操作系統(tǒng)及提供部分硬件的驅(qū)動程序。BSP軟件屬于嵌入式軟件的一部分,其在目標機應(yīng)用系統(tǒng)中的層次如圖3所示。
    BSP軟件是根據(jù)具體的硬件環(huán)境進行設(shè)計和開發(fā)的,因此只能運行在指定設(shè)備的硬件環(huán)境中。
2.2 BSP軟件的職責(zé)
    根據(jù)上節(jié)關(guān)于BSP軟件的定義,BSP軟件的職責(zé)主要包括以下兩點:
    (1)目標機硬件環(huán)境的初始化。
    (2)硬件驅(qū)動程序的集成。訪問硬件設(shè)備驅(qū)動程序,BSP必須包含設(shè)備驅(qū)動程序的相關(guān)支持、設(shè)備的配置管理等。

3 PPC8270的BSP開發(fā)過程
3.1 目標機硬件環(huán)境的初始化
    所謂目標機硬件環(huán)境的初始化是指從目標機系統(tǒng)上電復(fù)位開始到操作系統(tǒng)開始初始化用戶應(yīng)用時的一段時間內(nèi)系統(tǒng)所執(zhí)行的過程,該過程主要包括兩部分工作:CPU初始化和目標機初始化。
3.1.1 CPU初始化
    CPU初始化的目的是通過對CPU內(nèi)部各種控制與狀態(tài)寄存器的設(shè)置來使得CPU具有確定的工作方式和穩(wěn)定的狀態(tài),在該開發(fā)實例中,主要完成以下幾種工作:
    (1)設(shè)置CPU啟動方式為冷啟動;
    (2)通過IMMR設(shè)置PPC8270芯片內(nèi)部存儲空間為0xF0000000;
    (3)通過清除MSR(Machine state register)使PPC8270芯片達到初始工作狀態(tài);
    (4)根據(jù)應(yīng)用需求對目標系統(tǒng)進行空間配置,并進行IBAT,DBAT以及TLB的初始化;
    (5)初始化指令Cache和數(shù)據(jù)Cache;
    (6)初始化棧地址為0x20000。
3.1.2 目標機初始化
    初始化控制芯片的寄存器、I/O設(shè)備寄存器,為整個軟件系統(tǒng)提供底層硬件環(huán)境的支持。在該開發(fā)實例中,目標機的初始化主要完成:
    (1)將目標機啟動地址設(shè)置為0xFFF00100;
    (2)PCI總線的初始化,包括PCI總線配置地址和數(shù)據(jù)地址的指定;
    (3)SDRAM初始化;
    (4)將FLASH基地址配置為0xFF800000;
    (5)通過清除MSR(Machine State Register)使PPC8270芯片達到初始工作狀態(tài)。
3.2 硬件驅(qū)動程序的開發(fā)
    PPC8270的BSP開發(fā)涉及的基本硬件資源包括串口控制器、中斷控制器、定時器、網(wǎng)絡(luò)控制器,在該開發(fā)實例中,上述基本硬件資源均采用PPC8270處理器內(nèi)部集成的控制芯片。
3.2.1 串口控制器驅(qū)動開發(fā)
    串口通信是目標機與宿主機聯(lián)系的橋梁,在BSP的硬件驅(qū)動開發(fā)中,通常首先進行的是串口控制器的開發(fā),從而為后續(xù)的開發(fā)工作提供更多的調(diào)試途徑。在該開發(fā)實例中采用PPC8270內(nèi)部集成的SCC(Serial Communications Controllers)作為串口控制器,根據(jù)上層操作系統(tǒng)的需求,串口控制器驅(qū)動應(yīng)具有的基本功能包括:串口初始化和串口的讀/寫。
    串口控制器的驅(qū)動開發(fā)首先應(yīng)完成串口初始化的工作,使串口芯片達到一個確定的工作狀態(tài),主要包括以下幾個方面的內(nèi)容:
    (1)輸入/輸出端口的初始化。PPC8270內(nèi)部包含4路通用的輸入/輸出端口。每路輸入/輸出端口包含4組獨立的可讀/寫的配置寄存器:PODRA(Port OpenDrain Registers)-PODRD,PDIRA(Port Data Direction Registers)-PDIRD,PSORA(Port Special Options Registe-rs)-PSORD和PDATA(Port Data Registers)-PDATD。根據(jù)本實例硬件設(shè)計,采用第四路輸入/輸出端口,因此應(yīng)對其各配置寄存器進行設(shè)置,并將其與采用的串口通道進行連接。
    (2)串口波特率的初始化。對于SCC的波特率初始化可通過PPC8270內(nèi)部BRGs(Baud-Rate Generators)來實現(xiàn),并通過CMXSCR(CMX SCC Clock Route Register)的設(shè)置將BRG的設(shè)置與具體的串口通道進行連接。在該實例中,設(shè)置串口波特率為115 200 Kb。
    (3)緩沖區(qū)描述符的初始化。SCC接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的緩沖區(qū)是通過緩沖區(qū)描述符來指定的,包括接收緩沖區(qū)描述符和發(fā)送緩沖區(qū)描述符。SCC緩沖區(qū)描述符的結(jié)構(gòu)如圖4所示。


    SCC串口發(fā)送和接收數(shù)據(jù)均通過緩沖區(qū)描述符來查詢數(shù)據(jù)狀態(tài)與地址,因此,緩沖區(qū)描述符的初始化應(yīng)完成緩沖區(qū)描述符起始地址的指定、緩沖區(qū)長度的初始化以及串口發(fā)送接收的工作方式設(shè)置。
    (4)參數(shù)RAM的初始化。SCC中每一路串口通道均可以進行獨立的參數(shù)RAM初始化,主要完成本串口通道基地址、串口中斷處理方式以及串口數(shù)據(jù)的傳送方式的設(shè)置。
    (5)UART工作方式設(shè)置。
    (6)串口中斷向量的掛接。
    在完成串口初始化的基礎(chǔ)上,可以進一步進行串口讀/寫功能的開發(fā)。基于SCC的串口讀/寫控制是通過緩沖區(qū)描述符來實現(xiàn)的。當(dāng)接收緩沖區(qū)描述符中指定的緩沖區(qū)地址有新的接收數(shù)據(jù)到達時,接收緩沖區(qū)描述符的狀態(tài)會發(fā)生改變。當(dāng)發(fā)送緩沖區(qū)描述符中指定的緩沖區(qū)地址有新的發(fā)送數(shù)據(jù)到達時,發(fā)送緩沖區(qū)描述符的狀態(tài)會發(fā)生改變。因此,可以通過對緩沖區(qū)描述符狀態(tài)的監(jiān)控,來確定何時從接收緩沖區(qū)拷貝數(shù)據(jù)以及何時將發(fā)送數(shù)據(jù)拷貝至發(fā)送緩沖區(qū),從而完成串口數(shù)據(jù)的接收和發(fā)送。
3.2.2 中斷控制器驅(qū)動開發(fā)
    中斷機制是目標機感知事件的重要手段,PPC8270具有內(nèi)部集成的中斷控制器,對各類中斷源的中斷向量號進行了明確的定義,并在一定程度上規(guī)定了各類中斷源的中斷優(yōu)先級。在中斷控制器驅(qū)動中,應(yīng)實現(xiàn)的主要功能包括:中斷控制器的初始化、中斷向量的獲取以及中斷的使能與禁止。
    (1)中斷控制器的初始化。PPC8270集成中斷控制器的初始化過程較為簡單,主要的工作是通過SIMR(SIU Interrupt Mask Registers)的設(shè)置將所有中斷源對應(yīng)的中斷信號進行禁止。
    (2)中斷向量的獲取。PPC8270集成中斷控制器獲取中斷向量可通過讀取SIVEC(SIU Interrupt Vector Register)寄存器來獲得。
    (3)中斷的使能和禁止。在PPC8270集成中斷控制器中,通過對SIMR中相應(yīng)數(shù)據(jù)位的置位與復(fù)位操作來實現(xiàn)指定中斷源的使能與禁止。
3.2.3 定時器驅(qū)動開發(fā)
    定時器是一種特殊的中斷源,可為系統(tǒng)運行提供時間精度的支持,PPC8270內(nèi)部具有4路獨立的16位定時器,也可以作為2路32位定時器使用,4路定時器分別擁有獨立的寄存器組:包括TMR(Timer Mode Register),TCR(Timer Counter Register),TRR(Timer Reference Register),TER(Timer Event Register),TGCR(Timer Global Configuration Register),可以根據(jù)應(yīng)用的需要對相應(yīng)的寄存器進行設(shè)置來完成定時器的初始化、定時器的使能與禁止、定時器頻率的設(shè)置與獲取等功能。
    (1)定時器的初始化。定時器的初始化主要是通過TRR來完成定時器的時鐘頻率設(shè)置并將指定的定時器中斷連接到相應(yīng)的中斷處理程序。
    (2)定時器的啟動與停止。定時器的啟動與停止應(yīng)能夠根據(jù)指定的定時器通道完成定時器的啟動與停止,包含兩方面的內(nèi)容:即指定定時器中斷向量的使能與禁止和通過TGCR對指定定時器進行的啟動與停止。
    (3)定時器頻率的設(shè)置與獲取。
3.2.4 網(wǎng)卡控制器驅(qū)動開發(fā)
    在進行網(wǎng)卡控制器驅(qū)動開發(fā)前,目標機系統(tǒng)與宿主機之間的通信是通過串口來實現(xiàn)的,雖然能夠滿足通信的功能,但面對大數(shù)據(jù)量的通信任務(wù)時,其性能卻遠不能滿足應(yīng)用的需求。網(wǎng)卡控制器驅(qū)動的開發(fā)是目標機系統(tǒng)通訊能力實現(xiàn)升級的重要環(huán)節(jié),為操作系統(tǒng)、應(yīng)用程序的加載提供了更為高速的通路。
    (1)FCC的特征
    PPC8270采用內(nèi)部集成的FCC(Fast Communications Controller)作為網(wǎng)卡控制器,F(xiàn)CC是為了適應(yīng)高速傳輸協(xié)議而升級的SCC,具有如下特征:
    ①支持HDLC(High-level data link control)/SDLC(Synchronous data link control);
    ②FCC時鐘既可以通過內(nèi)部BRG獲得,也可以通過外部時鐘源獲得;
    ③通過緩沖區(qū)描述符進行發(fā)送接收數(shù)據(jù)緩沖區(qū)管理;
    ④192 B FIFO(First In First Out)緩沖區(qū);
    ⑤全雙工工作模式;
    ⑥支持數(shù)據(jù)回繞測試模式。
    (2)基于FCC的網(wǎng)卡控制器驅(qū)動開發(fā)
    基于FCC的網(wǎng)卡控制器驅(qū)動開發(fā)應(yīng)包含網(wǎng)卡初始化、網(wǎng)口讀/寫功能。其中,網(wǎng)卡初始化是實現(xiàn)網(wǎng)卡正常工作的關(guān)鍵,其初始化過程需要在上電復(fù)位后對一系列的寄存器及參數(shù)進行設(shè)置,在本開發(fā)實例中的網(wǎng)卡初始化過程所述如下:
    ①輸入/輸出端口的初始化;
    ②通過配置GFMR(General FCC Mode Registers)MODE位選擇FCC的工作模式為以太網(wǎng)模式,并禁止發(fā)送和接收事件;
    ③根據(jù)系統(tǒng)需求通過FPSMR(FCC Protocol-Spe-cific Mode Registers)配置FCC在以太網(wǎng)模式下的各種工作參數(shù),包括CRC校驗、心跳檢查、全雙工模式等;
    ④通過配置FDSR指定同步協(xié)議中的幀同步過程。由于FCC工作在以太網(wǎng)模式,選用推薦值0xD555;
    ⑤配置FCC的參數(shù)RAM,指定接收與發(fā)送緩沖區(qū)描述符的地址,并對其進行初始化;
    ⑥通過FCCE(FCC Event)寄存器清除所有FCC外部中斷事件,并通過FCCM(FCC Mask)使能所有在FCCE中指定的事件;
    ⑦使能網(wǎng)卡中斷向量,并連接相應(yīng)的中斷處理程序;
    ⑧發(fā)送INIT TX AND RX PARAMETERS命令,并通過GFMR使能發(fā)送與接收事件。
    在完成網(wǎng)卡初始化后,可以通過判斷網(wǎng)卡中斷的狀態(tài)來區(qū)分發(fā)送和接收事件,并從相應(yīng)的緩沖描述符中獲取緩沖區(qū)地址,實現(xiàn)數(shù)據(jù)的發(fā)送和接收,此過程與第3.2.1節(jié)中SCC的發(fā)送與接收過程相似。

4 結(jié)語
    本文通過對目標機硬件環(huán)境初始化過程和硬件驅(qū)動開發(fā)過程的描述,詳細介紹了基于PPC8270的BSP開發(fā)過程。在該開發(fā)實例中,該BSP軟件能夠在目標機模塊上穩(wěn)定運行,并為上層操作系統(tǒng)及應(yīng)用程序提供有效的運行支持。在今后的工作中,將對該BSP軟件的而可移植性進行進一步的優(yōu)化,以便其能更好的應(yīng)用于其他BSP軟件的開發(fā)實例中。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉