Intel® SoC FPGA 裸機開發人員中心
協助您開始並熟悉 Intel SoC FPGAs 裸機開發的資源。
裸機開發使用不使用作業系統 (OS) 或即時作業系統 (RTOS) 的軟體運行時間環境。在裸機配置中,可以使用SoC FPGAs的硬處理系統(HPS)。Intel 提供的硬體庫 (HWLIB) 包含高階應用程式程式設計介面 (API) 和低階宏,讓您能夠執行大多數 HPS 外圍裝置。
您可以從以下連結存取各種資源,協助您開始在 Intel® SoC FPGAs 進行裸機開發。如果您是首次使用,我們建議您線性跟蹤資源。
設計考慮
什麼是裸機?
- 裸機表示處理器系統的實際緩存器介面和硬體功能。
- 裸機開發使用不使用作業系統或即時操作系統的軟體運行時間環境。
- 在裸機配置中,可以使用SoC FPGAs的HPS。Intel 提供的 HWLIB 包含高階 API 和低階宏,讓您能夠執行大部分 HPS 外圍裝置。
為什麼選擇裸機?
- 使用裸機方法的優點是:
- 硬體的絕對控制
- 提高效率
- 最小尺寸(快閃記憶體和記憶體佔用空間)
- 不依賴於其他原始程式碼或庫
- 更容易正式證明正確性並執行代碼覆蓋率分析
- 選擇裸機開發的其他原因包括:
- 需要執行機板啟動並一次專注於一個外設
- 需要重用已經開發為裸機的現有舊代碼
- 缺乏操作系統或即時作業系統的經驗
裸機注意事項
若要為 HPS 開發裸機應用程式,必須熟悉開發運行時功能,以確保應用程式有效利用 CPU 子系統中可用的資源。可能需要的示例如下:
- 深入瞭解硬體平臺
- 如果您想充分利用 CPU 子系統,請開發運行時間功能來管理核心和高速緩存子系統之間的進程,因為典型的裸機應用程式僅使用單個核心
- 開發用於管理和調度流程、處理進程間通信以及同步應用程式內事件的功能
如果您的預定項目不允許費力才能熟悉上述幾點,那麼建議您考慮使用商業 Linux* 或 RTOS 解決方案。
替代 |
優勢 |
評論 |
---|---|---|
Linux | 網路、儲存、多任務處理、進程間通訊、同步等。 | 您不必是Linux內核專家即可在專案中使用Linux。例如,您可以編寫一個 Linux 使用者空間應用程式並直接訪問FPGA智慧財產權 (IP) 寄存器,類似於裸機應用程式的行為方式。 |
Rtos | 多核心處理、多任務處理、進程間通信和同步,具體取決於即時操作系統。 | 使用簡單的即時操作系統很容易。這類似於使用已實現的函數的 C 庫,而不是自己編寫這些函數。 |
引導載入程式 | 更快的啟動時間,以及對引導載入程式中已實現的功能的訪問,例如大容量存儲和網路 | 可用的引導載入程式有: |
設計流程圖
裸機開發的典型設計流程圖如下所示:
流程摘要如下:
- 從硬體設計開始,其中包括:
- HPS 配置:頻率設定、針腳多路複用與配置、DDR 設定、連接的周邊裝置等。
- FPGA結構內容:在FPGA中實例化的IP核,以及FPGA引腳、記憶體控制器和鎖相迴路 (PLL) 配置
- 硬體設計是使用 Intel® FPGA Complete Design Suite 工具編譯的,該工具會生成以下檔:
- SOF 檔:用於通過各種方法配置FPGA結構 - 外部程式設計器,外部快閃記憶體,HPS引導載入程式,甚至HPS應用程式
- 切換:包含第二階段引導載入程式產生器用於創建將在 HPS 上使用的引導載入程式的資訊
- SOPCINFO 檔:可用於自動創建具有FPGA軟IP位址的頭檔
- SVD 檔:包含有關FPGA軟 IP 寄存器的資訊,以便 ARM* Development Studio 5* (DS-5*) Intel SoC FPGA 版調試器可以在調試期間以使用者友好的格式顯示它們
- 使用者在 HWLIB 的幫助下編寫自訂原始程式碼,並可能使用 FPGA IP 位址頭檔
- 使用者藉助裸機編譯器編譯裸機應用程式
- 使用者使用 ARM DS-5 Intel SoC FPGA 版調試裸機應用程式
2. 入門
選擇目標主機板
- 我們建議從 Intel 提供的 SoC 開發工具包開始開發,因為入門裸機範例的目標是在這些主機板上執行。
- 若要查看可用的 SoC FPGA板,請存取 Intel® FPGA 板。
安裝 Intel SoC FPGA EDS
- Intel SoC FPGA EDS 提供所有 SoC FPGA 開發所需的基本工具,包括裸機。如需更多詳細資訊,請參閱 嵌入式軟體與工具 for Intel® SoC FPGA 。
- 從 FPGA下載中心下載 Intel® SoC FPGA Embedded Development Suite(SoC EDS)專業版。
- Intel SoC FPGA EDS 的安裝過程和安裝工具。
- 如果 ARM DS-5 Intel SoC FPGA 版用於調試和/或追蹤裸機應用程式,則需要獲得許可證。購買 Intel SoC FPGA 開發工具包時通常隨附該許可證。請參閱 Intel® SoC FPGA Embedded Development Suite (SoC EDS) 使用者指南 許可證設定說明。
選擇“生成工具”
- Intel SoC FPGA EDS 提供下列裸機構建工具:
- Intel SoC FPGA版的 Mentor CodeSourcery——基於 GCC,無需授權
- ARM Compiler 5 – Intel SoC FPGA EDS 許可證隨附的許可證
- 可以使用其他面向 ARM 平台的建構工具套件 - 轉到 Intel® FPGA 和 Intel® SoC FPGA 裝置的生態系統。
- 入門示例專案適用於作為 Intel SoC FPGA EDS 一部分提供的 GCC 和 ARMCC 編譯器。
選擇調試和跟蹤工具
- Intel SoC FPGA EDS 包括 ARM DS-5 Intel SoC FPGA 版,它完全支援裸機程式的調試和追蹤 – 需要許可證
- 入門示例專案使用ARM DS-5 Intel SoC FPGA 版進行調試和跟蹤
練習入門應用程式
- 入門應用程式示例可用於 Cyclone V、Arria V 和 Intel® Arria® 10 器件,同時支援 ARMCC 和 GCC 編譯器。
- 範例應用程式練習以下內容
- HPS SDRAM、MMU、快取、
- HPS 定時器,中斷
- HPS 至 FPGA 網橋
- FPGA軟IP:系統ID
- FPGA中斷
- 在 SoCEDS 和 ARM Development Studio 主題 Rocketboards.org 上尋找所需版本的文件和下載。
3. 建立自己的專案
裸機項目的類型
ARM DS-5 Intel SoC FPGA版可以管理兩種不同類型的專案:
- 基於 makefile 的專案:該專案通過手動編輯 makefile 進行管理,ARM DS-5 Intel SoC FPGA 版只需對該 makefile 調用“make all”和“make clean”即可分別生成和清理專案。
- 基於外掛程式的專案: ARM DS-5 Intel SoC FPGA版可全面管理您的專案,包括要編譯的檔、編譯器選項、生成和清理。
基於makefile的專案的優點是它可以調用任何其他工具,而不僅僅是裸機編譯器,從而提供了更大的靈活性。使用基於外掛程式的專案的唯一優點是可以從ARM DS-5 Intel SoC FPGA版圖形介面輕鬆訪問設置,而不是使用文字編輯器編輯makefile。
創建自己的項目的推薦方法
我們建議開始使用 提供的腳本 來自動創建基於 外掛程式 或 基於生成文件的專案 。
該文稿執行以下操作:
- 創建項目資料夾
- 使用所有必需的編譯設置創建 C 項目檔
- 創建一個簡單的 main.c 檔,只需列印「hello world」消息
- 引入所有相關的 HWLIBs 檔案
- 創建具有FPGA結構外圍設備基址的 system.h 檔(需要先安裝 Intel® Quartus® Prime 軟體,否則將跳過此步驟)
- 創建用於調試應用程式的調試配置
- 建立用於執行引導載入程式的調試設定 [可選]
- 建立外部工具啟動器以從 ARM DS-5 Intel SoC FPGA 版配置FPGA架構 [可選]
- 建立外部工具啟動器,以便在需要時重新生成 system.h 檔 [可選]
請注意,「入門」部分中描述的所有入門專案都是使用此方法創建的。
創建專案的替代方法
您還可以使用以下替代方法建立自己的專案:
- 選項 1:手動創建 makefile,然後參閱適用於 Intel® SoC FPGA 版的 Arm* Development Studio* ,尋找在 ARM DS-5 Intel SoC FPGA Edition 中將專案創建為 基於 makefile 的項目 的說明。手動創建生成檔超出了本指南的範圍,並且需要您熟悉所有生成工具及其選項。如果需要生成文件,建議的方法是使用提供的腳本來創建它。
- 選項 2:從頭開始手動創建 基於外掛程式 的專案。這包括手動重現提供的腳本為創建專案而遵循的過程。請注意,該腳本提供了更多功能,並且是創建項目的推薦方法。記錄此選項僅供參考。
- 選項 3:從現有項目開始,然後對其進行修改以滿足您的需求。這可以特別用於短期測試和實驗,但不建議使用此方法。
4. 示例
入門裸機應用程式
表 A. 針對 Intel SoC 開發板並行使:
- HPS SDRAM
- HPS MMU 和緩存
- HPS 定時器,帶中斷功能
- FPGA IP:SysID 和 PIO – 按鈕、雙列直插式封裝 (DIP) 開關和 LED
- FPGA中斷
裝置 |
編譯器 |
例子 |
---|---|---|
Cyclone® V |
阿馬克 |
|
Cyclone® V |
Gcc |
|
Arria® V |
阿馬克 |
|
Arria® V |
Gcc |
|
Intel® Arria® 10 |
阿馬克 |
|
Intel® Arria® 10 |
Gcc |
Intel SoC FPGA EDS 隨附的裸機範例
表 B. 目標 Intel SoC 開發板,可從 <SoC FPGA 安裝資料夾>\embedded\examples\software\ 取得:
範例名稱 |
描述 |
裝置 |
編譯器 |
---|---|---|---|
硬體Lib-16550 |
使用 UART 和中斷 API 實現控制台應用程式。 |
Cyclone V |
阿馬克 |
HardwareLib-ECCL2 |
設定MMU表格並顯示L2高速緩存的ECC功能。 |
Cyclone V |
阿馬克 |
HardwareLib-FPGA |
使用直接記憶體訪問 (DMA) 配置FPGA HPS,打開 H2F 網橋並與FPGA結構內的 GPIO 軟 IP 元件通信。 |
Cyclone V |
阿馬克 |
HardwareLib-SPI |
與外部板上的SPI EEPROM通信。 |
Cyclone V |
阿馬克 |
HardwareLib-Timer |
設置定時器和中斷。 |
Cyclone V |
阿馬克 |
你好世界-裸機 | 使用半託管列印「hello world」 消息。 | Cyclone V Arria V Intel Arria 10 |
阿馬克 Gcc |
其他裸機範例
表 C. 目標 Intel SoC 開發板,可從 設計範例頁面取得,全部使用 GCC 編譯程式:
例子 |
描述 |
裝置(專案檔案) |
裝置(自述檔) |
---|---|---|---|
Dma |
初始化 DMA,執行記憶體到記憶體傳輸以及零到記憶體傳輸。 |
||
Ecc |
為片上 RAM、SD/MMC、四串行週邊介面 (SPI)、DMA 和 L2 高速緩存設置並啟用 ECC。注入單/雙位錯誤併為單/雙位錯誤檢測設置中斷。 |
||
通用數據保護組織 |
設定通用輸入/輸出 (GPIO) 作為驅動 HPS LED 的輸出埠,並將 GPIO 設定為 HPS 按鈕的輸入埠。 |
||
I2c |
通過 I2C 與 LCD 螢幕、EEPROM 記憶體以及兩個 I2C 模組之間進行通信。 |
||
四 SPI |
使用通用區塊 I/O 模式、間接模式和 DMA 模式執行四通道 SPI 的讀取和寫入。還會設置MMU和緩存。 |
||
SD/MMC |
初始化 SD/MMC 卡,使用區塊 I/O 功能進行讀寫。 |
||
計時 器 |
在自由運行、單次和看門狗模式下使用計時器。執行全域定時器測量。 |
||
無宿主 | 使用UART進行 printf 輸出,而不是半託管。還演示如何從SD卡啟動裸機程式。 | ||
Spi | 在透過FPGA結構連接的兩個 SPI 模組之間進行通信。 | ||
HPS 至 FPGA 網橋 | 執行向 FPGA 結構公開的硬核處理器系統 (HPS) 的記憶體對應介面。通過使用 HPS 的各種埠寫入和讀取 HPS 記憶體來執行記憶體測試,並測量數據移動的性能。 | 例子 |
如何在 Cyclone V FPGAs 上實現就地執行 (XIP)
請參閱Wiki上的 Cyclone V QSPI XIP 範例設計頁面 Intel FPGA瞭解如何從QSPI快閃記憶體執行裸機應用程式的完整說明。
如何在 Cyclone V FPGAs 上啟動裸機應用程式
請參考 應用筆記 709, 啟動示例章節,瞭解從下列位置啟動 Cyclone V SoC 裸機應用的範例:
- SD/MMC
- QSPI
- Fpga
知識庫
知識庫提供了大量的支援解決方案、參考文章、錯誤消息和故障排除指南,並且還可以完全搜索。
Intel 社群
Intel 社群 是一個社群網站,可讓Intel FPGA用戶進行協作。查看「嵌入式設計套件 (EDS)」與「SoC 討論」一節。使用搜尋引擎查找相關材料。我們也鼓勵您更新和貢獻。
培訓課程
以下是您在開始裸機開發之前可以參加的基礎訓練課程。
資源 |
類型 |
發達的技能 |
---|---|---|
27分鐘免費在線課程 |
|
|
免費28分鐘在線課程 |
|
|
8小時講師指導/虛擬課程 |
|
學習 -Intel SoC FPGA EDS 使用者指南
SoC EDS 使用者指南是描述所有Intel SoC FPGA EDS 工具和元件的基礎文檔。強烈建議您參閱以下與裸機開發相關的章節:
SoC EDS 部分 |
描述 |
---|---|
概述和軟硬體開發流程。 |
|
如何安裝 Intel SoC FPGA EDS 和 ARM DS-5 Intel SoC FPGA Edition。 |
|
Intel SoC FPGA EDS 的許可選項以及如何安裝許可證。 |
|
如何啟動 shell 並使用它來訪問其餘的 Intel SoC FPGA EDS 工具。 |
|
基本操作,例如啟動ARM DS-5 Intel SoC FPGA版、裸機專案管理和調試。 |
|
HWLIB 的概述以及如何獲取 Intel SoC FPGA EDS 安裝中包含的 Doxygen 資訊。 |
|
Intel SoC FPGA EDS 中包含的兩個裸機編譯器的概述:ARMCC 和 GCC。 |
學習 - Intel SoC FPGA EDS 入門指南
Intel FPGA Wiki 上的 SoC EDS 入門指南 是一組基本說明,可説明你輕鬆開始使用 Intel SoC FPGA EDS。
其他文件和資源
技術參考手冊
技術參考手冊包含硬體的詳細說明,包括所有外設的行為、基址、中斷映射和控制/狀態寄存器。
SoC 說明文件頁面
SoC 文件頁麵方便地提供單一位置來訪問所有相關 SoC 文件,例如技術參考手冊、數據手冊和應用說明。
其他資源
資源 |
描述 |
---|---|
下載 SoC FPGA EDS。 |
|
查看所有可用的 FPGA 開發工具包。按兩下左側導航窗格中的 SoC系列套件 ,查看支援SoC FPGA的主機板。 |
|
訪問各種設計範例。按兩下左側導航窗格中的「 SoC 設計範例 」以查看面向SoC FPGA的範例。 |
|
訪問整個Intel FPGA培訓課程。在左側導航窗格中選擇「 軟體開發 」,然後搜索「SoC」以獲取特定 SoC FPGA 相關課程。或選取任何其他感興趣的領域。 |
|
訪問整個Intel FPGA訓練目錄。搜索“SoC”以獲取特定的SoC FPGA相關課程。或選擇任何其他感興趣的課程。 |
|
請參閱Intel SoC FPGA EDS 概覽,包括最新版本中的新增功能、發行說明和發行歷史。 |
|
取得各種 SoC FPGA 相關資源的連結,例如作業系統、開發工具、IP 核心和主機板。 |
|
觀看由 Intel FPGA 工程師製作的 200 多個影片。有些視頻是通用的,而另一些則與SoC FPGA產品相關。 |
|
透過此社群網站與其他Intel FPGA使用者合作。查看 嵌入式設計套件 (EDS) 和 SoC 討論 部分。使用搜尋引擎查找相關材料。我們鼓勵所有人更新和貢獻。 |
這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。