當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,嵌入式科技得到更為廣泛的應用,其中FPGA和嵌入式操作系統(tǒng)的組合前景良好,它們的應用極大的改變了嵌入式開發(fā)的效率。為使得Nios II軟核和RTEMS嵌入式系統(tǒng)相結(jié)合,首先介紹了Nios II的軟件開發(fā)環(huán)境,然后詳細闡述如何在Nios II平臺下搭建RTEMS嵌入式開發(fā)環(huán)境。

隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,嵌入式科技得到更為廣泛的應用,其中FPGA和嵌入式操作系統(tǒng)的組合前景良好,它們的應用極大的改變了嵌入式開發(fā)的效率。為使得Nios II軟核和RTEMS嵌入式系統(tǒng)相結(jié)合,首先介紹了Nios II的軟件開發(fā)環(huán)境,然后詳細闡述如何在Nios II平臺下搭建RTEMS嵌入式開發(fā)環(huán)境。

1.引言

隨著技術(shù)的不斷發(fā)展,嵌入式技術(shù)逐漸成為計算機技術(shù)的一個重要分支。由于嵌入式產(chǎn)品所運用場合多種多樣,不同應用場景對嵌入式實時響應、成本都有著不同的需求。嵌入式開發(fā)涉及硬件和軟件設計,其中硬件開發(fā)包括板級開發(fā);而軟件開發(fā)則需要在硬件開發(fā)完成后才能開始,且與硬件有著緊密的關(guān)系。但FPGA的出現(xiàn)將徹底改變傳統(tǒng)嵌入式開發(fā)模式,使得嵌入式開發(fā)工程師可以像PC端軟件開發(fā)一樣開發(fā)嵌入式軟件,降低嵌入式開發(fā)的成本。

RTEMS(Real - Time Executivefor Multiprocessor Systems)是一個開放源代碼的實時嵌入式操作系統(tǒng),對各類主流的嵌入式平臺都有良好的支持,同時其也有著良好的開發(fā)軟件。目前無論是航空航天、軍工,還是民用領(lǐng)域RTEMS都有著極為廣泛的應用。

Nios II由美國Altera公司推出的基于Nios的第二代32位RISC軟核,基于FPGA平臺,其性能可達200MIPS,是一款可定制的高性能嵌入式軟核,配合Altera官方提供的開發(fā)者套件,嵌入式工程師可以快捷、高效的進行硬件、軟件的開發(fā)。

2.基于Nios II的SOPC開發(fā)環(huán)境

2.1 Altera SOPC Builder

SOPC Builder是一個全自動的SOPC硬件開發(fā)環(huán)境,設計者可以通過Altera提供的IP宏選擇適合自己應用的外圍功能模塊,并進行內(nèi)存基地址的分配、中斷請求線和內(nèi)部總線的適配。與此同時,還可以通過HDL文件來自定義外設模塊,比如DM9000A以太網(wǎng)控制器。SOPCBuilder使得可以在短暫的時間內(nèi)完成一個完整的硬件開發(fā)系統(tǒng)。

2.2 SOPC硬件系統(tǒng)

通過Altera提供的Quartus II和SOPCBuilder可以快速自定應硬件系統(tǒng),圖1是針對Altera颶風III代EP3C16Q器件定制的硬件系統(tǒng)nios2rtems示例圖。


圖1 nios2rtems示例圖

硬件系統(tǒng)nios2rtems采用Nios II快速型軟核,為加快其運行速率,系統(tǒng)時鐘為100MHz,外圍模塊有jtag-uart、sdram、epcsflash、interval timer等,使用Avalon總線作為數(shù)據(jù)及控制總線。

2.3 SOPC軟件系統(tǒng)

通過使用Nios II IDE添加軟件工程,編譯即可生成與硬件相關(guān)聯(lián)的描述性文件,其中最為重要的是system.h文件以及HAL驅(qū)動。

system.h文件提供nios2rtems硬件的描述,包含各個模塊的基址、模塊所使用的中斷號和中斷優(yōu)先級及外設模塊的符號名。它同SOPCBuilder提供的各個外設模塊的寄存器描述構(gòu)成了HAL庫的基礎,同時也是驅(qū)動開發(fā)的基礎。而HAL作為硬件抽象層,通過函數(shù)封裝為上層應用提供統(tǒng)一的調(diào)用API接口。

3.RTEMS開發(fā)環(huán)境搭建

3.1 Nios II交叉編譯工具

有兩種方式完成交叉編譯工具的安裝,其一是通過官方提供的定制腳本來安裝;其二就是通過獲得各個組件的源代碼、補丁來手動編譯安裝。由于手動編譯安裝可能由于某個版本的錯誤選擇而使得編譯失敗,這里我們采用定制腳本來進行安裝。

3.1.1設置

為獲得支持Nios II平臺的嵌入式開發(fā)環(huán)境,需要準備工具包的源碼和定制腳本,以及工程目錄。

首先,為nios2rtems設置工作目錄:

mkdir-p nios2rtems/rtems/src

然后,獲得RTEMS源碼構(gòu)建套件,其大部分是由python所寫的腳本文件。由于托管在git倉庫,所以必須有g(shù)it工具并通過下面代碼獲得工具套件源碼:

$git clone git://git.rtems.org/rtemssource-builder.git

3.1.2檢查

RTEMS源碼構(gòu)建套件為檢查編譯環(huán)境是否已經(jīng)就緒提供了相應的工具sb-check:

$source-builder/sb-check

RTEMS Source Builder environment is ok

顯示編譯環(huán)境已經(jīng)準備就緒3.1.3編譯

源碼構(gòu)建套件中提供了若干平臺的支持,在編譯之前可以通過sb-set-builder命令的list-bsets選項查看其支持的平臺。

$/source-builder/sb-set-builder-list-bsets



4.10/rtems-nios2.bset

4.11/rtems-nios2.bset



從輸出結(jié)果可以知道,RTEMS在4.10版本就已經(jīng)支持nios2平臺了,這里我們選擇最新的4.11版本。通過如下命令可以開啟nios2平臺的交叉編譯工具的構(gòu)建:

$sb-set-builder-log=l-nios2.txt-prefix=$HOME/nios2rtems/rtems/4.114.11/rtems-sparc由于構(gòu)建過程中需要對所缺文件進行在線的下載,整個過程可能持續(xù)非常長在$HOME/nios2rtems/rtems/4.11目錄下的bin/文件夾下可以看到已安裝的nios2-rtems4.11-gcc等工具。

3.2 BSP支持包構(gòu)建

3.2.1 RTEMS BSP結(jié)構(gòu)

RTEMS下關(guān)于nios2平臺的主要部分有:第一,CPU相關(guān),該部分包含和CPU功能相關(guān)的代碼,主要涉及CPU上下文切換以及CPU中斷異常處理等代碼;第二,外設相關(guān),該部分包含外設硬件的寄存器信息等和CPU內(nèi)部功能相關(guān)功能代碼;第三,BSP相關(guān),該部分包含硬件系統(tǒng)中外設相關(guān)代碼,例如console、timer以及硬件初始化等[5].

3.2.2 Nios II BSP構(gòu)建

Nios II的驅(qū)動實現(xiàn)較為簡單,對硬件的操作主要涉及對外設硬件所在地址的讀寫操作[6].

在RTEMS中添加Nios II支持可以分為以下三個步驟。

首先,構(gòu)建cpu對Nios II支持,主要是提供CPU進程上下文切換和中斷異常處理相關(guān)代碼,具體需要實現(xiàn)以下功能:

1)_CPU_Context_switch()以及_CPU_Context_restore(),函數(shù)主要功能用于保存和恢復當前上下文相關(guān)的寄存器值。

2)_exception_vector(),處理CPU異常函數(shù),用于檢查硬件當前狀態(tài),并根據(jù)異常類型跳轉(zhuǎn)至異常處理服務程序或者中斷處理程序中。

3)_Exception_Handler(),異常處理服務程序。

4)_ISR_Handler(),中斷服務程序。

5)其它輔助函數(shù),例如中斷注冊、使能及禁止中斷等功能。

其次,添加外設對Nios II支持,主要是提供與CPU異常等相關(guān)的代碼,具體需要實現(xiàn)以下功能:

1)中斷的管理,包括中斷的注冊、中斷使能以及中斷禁止等功能,這是對cpu的進一步封裝(可選)。

2)Timer和Clock的等驅(qū)動服務程序。

3)外圍設備的寄存器相關(guān)信息,都可以在SOPC Builder中找到,例如jtag-uart的寄存器信息可在altera_avalon_jtag_uart_regs.h文件中找到,將所有外設的寄存器相關(guān)頭文件信息放入csrcliblibcpu目錄中。

4)添加其他可能需要的Cache操作相關(guān)代碼。

最后,添加BSP對Nios II支持,該部分以RTEMS中nios2_iss為模板,提供基本的驅(qū)動程序,一般包括以下基本內(nèi)容:

1)Clock驅(qū)動,Timer驅(qū)動,jtag-uart驅(qū)動。這一部分代碼涉及對底層硬件的讀寫操作,非常依賴于Nios2eds生成的system.h文件及相關(guān)寄存器頭文件。

2)start.S及bspstart.c,操作系統(tǒng)啟動文件。文件start.S包含RTEMS的啟動代碼,包括初始化處理器和單板,為之后的C程序運行提供棧空間,使之可以進入bspstart.c進一步初始化BSP.


3)其他外設驅(qū)動,網(wǎng)絡驅(qū)動,攝像頭驅(qū)動等都在此處添加。

3.2.3編譯下載

準備好Nios II的BSP之后既可以按照RTEMS官方提供的內(nèi)核編譯流程編譯,之后即可編譯鏈接用戶應用程序。通過命令行的nios2-download即可實現(xiàn)程序下載。

4.結(jié)論

本文首先介紹了如何使用Quartus II、SOPC Builder工具進行系統(tǒng)開發(fā)的一般流程,并簡要分析NiosII硬件系統(tǒng)及其軟件系統(tǒng)的架構(gòu)。接著詳細講述如何為RTEMS構(gòu)建支持NiosII的板級支持包以及使用Nios2eds進行應用軟件的開發(fā)。全文從底層硬件到上層軟件,詳細描述了如何為基于NiosII軟核構(gòu)建基于RTEMS的板級支持包。本文同時給出了基于Nios II軟核的RTEMS移植方法和實驗平臺構(gòu)建的一般方法。

本站聲明: 本文章由作者或相關(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è)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(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 半導體

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

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

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

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(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)閉