大多數(shù)FPGA設(shè)計者從邏輯設(shè)計做起,對軟件級設(shè)計接觸不多,但目前的項目中都少不了處理器軟件C的設(shè)計,下面接著看下《UltraFast 嵌入式設(shè)計方法指南》中關(guān)于軟件設(shè)計方面的內(nèi)容,主要分3部分:軟件設(shè)計需要考慮的事項、設(shè)計流程及調(diào)試等。
1. 軟件設(shè)計考慮事項
軟件設(shè)計時,需要先搭建一個處理器到系統(tǒng)中,處理器可以是硬核(如ZYNQ的ARM),也可以是軟核(如NIOS II),所有的內(nèi)容均圍繞處理器方面設(shè)計展開:處理器配置,操作系統(tǒng)選擇,庫和中間件,啟動加載器,軟件開發(fā)工具(SDK)。
-
處理器配置:配置核心頻率、多處理單元協(xié)調(diào)和數(shù)據(jù)程序存儲空間分配、中斷等;
-
操作系統(tǒng)選擇:選擇操作系統(tǒng)活著裸跑;
-
啟動加載器:方便操作系統(tǒng)的BOOT設(shè)計;
-
軟件開發(fā)工具:C開發(fā)環(huán)境,類似NIOS IDE開發(fā)環(huán)境。
當(dāng)我們自己在邏輯部分設(shè)計了一個底層邏輯后通過接口(一般是總線接口)連接到處理器后,也可以自定義自己的操作接口,通過SDK來操作底層邏輯。如三角函數(shù)處理器運算太慢,可以在邏輯中設(shè)計一個三角函數(shù)后SDK中只需將運算的數(shù)據(jù)寫入對應(yīng)reg中后得到運算結(jié)果,這就實現(xiàn)了硬軟件協(xié)調(diào)處理功能。
2. 軟件設(shè)計流程
軟件設(shè)計流程如下圖:
其中:
-
板啟動開發(fā)工作包括開發(fā)低級固件、設(shè)置啟動次序、針對接口和外設(shè)的基本測試,劃分了下列階段:PS 初始化 ,PL 配置 ,儲存器和外設(shè)測試,軟件和硬件調(diào)試;
-
驅(qū)動開發(fā)為 SoC 和板載外設(shè)開發(fā)軟件驅(qū)動,用于為OS或裸機應(yīng)用等更高軟件層建立接口;
-
針對裸機或 Linux 或 FreeRTOS 等操作系統(tǒng)開發(fā)出了相關(guān)可運行應(yīng)用。
設(shè)計中要注重層次,多學(xué)習(xí)C++等高級語言設(shè)計技巧,這樣可以保證設(shè)計的簡潔和可維護性,一般FPGA對C設(shè)計接觸比較少從業(yè)者寫的C代碼一團亂麻。
3. 調(diào)試
系統(tǒng)調(diào)試中,PL部分就是我們常用的Modelsim仿真+在線邏輯分析儀等,PS部分就是斷點、單步,查看內(nèi)存等。關(guān)于調(diào)試的經(jīng)驗技巧下次搞篇文章分享。
軟件調(diào)試中,需要在處理器配置配置合適的的選項,SDK中靈活使用,同時需要注意:調(diào)試完成得到最終發(fā)行版本時,記得去掉在線邏輯分析儀和處理器JTAG配置,因為這樣會省掉不少資源,時序和功耗當(dāng)然會更好。
4. 其它
理解啟動加載器的流程對理解軟硬件協(xié)同+Linux有很大幫助:
在為SoC 加電時,啟動過程從BootROM 開始。啟動過程先從片上儲存器 (OCM) 加載然后啟動執(zhí)行第一階段啟動加載器 (FSBL)。FSBL負責(zé)配置具體的初始化。
然后根據(jù)軟件架構(gòu),第二階段啟動加載器,如使用嵌入式 Linux 時的 U-Boot進行初始化并執(zhí)行。 FSBL 和/或 SSBL 啟動 RTOS 或嵌入式 Linux 以及應(yīng)用代碼。如果沒有操作系統(tǒng),則是裸跑,好多步都沒有。簡單說裸跑就是51單片機C程序開發(fā),而跑系統(tǒng)則是ARM高端應(yīng)用程序開發(fā),原理性相差不大,可以自己查閱資料了解,不需要馬上都懂,因為隨著時間和經(jīng)驗的積累,這些你會慢慢要了解并使用鞏固。
5. 總結(jié)
FPGA大多是邏輯開發(fā)者,但只做邏輯的話局限性太大,而且現(xiàn)在的趨勢也是FPGA軟件話了,SDSOC就是證明。所以,我們應(yīng)該提前擴充知識面,而且你會發(fā)現(xiàn)復(fù)雜軟件設(shè)計和操作系統(tǒng)經(jīng)驗上有很多技巧也可以借鑒,更好地借鑒能幫助我們軟+硬+系統(tǒng)結(jié)合,設(shè)計出更有成就感的架構(gòu)應(yīng)用于項目中。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
603012 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304825 -
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209333
原文標(biāo)題:《UltraFast 嵌入式設(shè)計方法指南》(3)——軟件級
文章出處:【微信號:fpga234,微信公眾號:fpga234】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論