搭建開發板
本章將協助您在新平臺上搭建TouchGFX。 搭建開發板意味著在將TouchGFX添加進來之前,必須確保所有必要的板載部件和相應的驅動程式均能正常工作。
如果您已擁有一個帶有顯示器的開發板,則此階段的許多操作將很容易。 如果您擁有的是塊全新的定製板,則此階段可能需要花費好幾天才能完成。 由於在不穩定的平臺上很難編寫出良好的程式,因此前期準備工作是很重要的。 此外,穩定可靠的平台讓您更專注於應用程式的開發。
如果您就是負責板上硬體和底層軟體的開發人員,則本章很適合您。 如果您只關注應用程式的實際UI介面開發,則本章不太適合您。
在搭建開發板時,您應完全瞭解板的元件和外設、元件之間的連接、所用到的通訊協定以及各個可用和/或所需的驅動程式程式碼。
📄️ 1. 創建專案
動機
📄️ 2. CPU的執行
動機
📄️ 3. 顯示內部記憶體中的影像緩衝區
動機
📄️ 4. 外部RAM
動機
📄️ 5. 顯示外部RAM中的影像緩衝區
動機
📄️ 6. 外部可定址快閃記憶體
動機
📄️ 7. 區塊模式下的外部快閃記憶體
動機
📄️ 8. 硬體加速器
動機
📄️ 9. 觸控控制器
動機
📄️ 10. 按鈕
動機
📄️ 11. 快閃記憶體下載
動機
下一章TouchGFX AL開發將討論如何創建允許TouchGFX在硬體和驅動程式之上運行的抽象層。
行業工具工具介紹
下表列出了搭建STM32的開發板時所需的一些重要工具。
工具 | 描述 |
---|---|
STM32CubeMX | 一種易於使用的工具,用於配置MCU並生成包括內部周邊的整個專案初始化原始程式碼。 |
STM32Cube韌體套件 | MCU各系列的STM32Cube韌體包含周邊的範例以及各種應用專案。 |
供應商資料手冊 | 外部裝置(如顯示器或快閃記憶體)的資料手冊包含正確設定MCU(比如通過STM32CubeMX)或外部設備的重要資料,例如電壓、時脈的設定等…。 |
供應商的驅動程式 | 為了節省時間,您應向供應商索取外部設備/元件的驅動程式碼。 通常需要將供應商的驅動程式程式碼移植到STM32的MCU中,這至少比從頭開始編寫驅動程式程式碼更簡單。 |
在開發板搭建階段的所有準備工作均與TouchGFX無關,也不應涉及任何TouchGFX程式碼。 相反,所做的工作和所產生的程式碼將為開發TouchGFX抽象層奠定堅實的基礎。
其主要目標在於確保硬體和底層軟體實際上按照最終應用的預期運行。
功能驗證
在開發板中執行的程式碼(基於一個或多個測試專案)將用於兩個目的:
抽象層 | 開發板初始化程式碼是建構TouchGFXAL以及最終執行的UI應用程式的基礎 |
測試程式碼 | 如果最終執行情況不符合預期,則需要根據現有開發板的初始化程式碼編寫驗證程式。 在開發板搭建階段,將會創建許多小程式,以驗證整個開發板和每個元件按照預期工作。 這些驗證程式在整個搭建過程中很有價值,尤其在測試情況變得不確定時,可以對其重新修改並予以完善。 |
鑒於上述兩個原因,有系統地保存各類驗證程式會非常有益。 您以後可以再次使用這些測試程式。 例如,當更複雜的應用意外失敗時,可使用這些測試程式驗證新版本硬體或用來查找問題。 還建議系統性地記錄在開發期間完成的任何測量資料,如記憶體頻寬。
總體流程
由於我們無法瞭解您硬體的具體構造,因此以下操作指南將作為啟動和準備用於運行TouchGFX開發板的一般性分步指南。
本指南的每一步都涉及您的硬體和/或軟體元件的一個特定部分及其啟動。 硬體的自定義元件部分的一個範例可以是觸控控制器。 總體目標是與觸控控制器進行通信,以獲取有關顯示器上的任何觸控資訊。 發送給觸控控制器的特定指令取決於您在硬體上使用的特定控制器,因此本指南無法提供完整的驅動程式。 為此,開發時需要將指南與觸摸控制器數據手冊中的資訊相結合。
Note
- 每次僅執行一步
- 在繼續下一步之前,請徹底驗證每個步驟
- 當某部分未能按預期工作時,本指南將作為除錯方法,或者返回並重新執行先前的步驟,以確保沒有違反這些步驟
- 如果您遇到意外情況,請不必驚慌,畢竟開發板的啟動搭建並不是一件容易的事
指南中的每一步都將遵循以下結構:
- 動機 此部分將解釋步驟,並說明為什麼該步驟是準備在硬體上運行TouchGFX時的重要步驟。
- 目標 目標部分列出了此步驟的目標。 驗證點列表詳述了您應執行的特定測試。 這些驗證點確保您的軟體滿足在硬體上成功運行TouchGFX的條件。
- 先決條件 我們在這裡列出了執行任務所需的專案。
- 執行 此部分盡可能具體地解釋如何編寫配置和使用硬體所需的軟體。 由於軟體在很大程度上取決於您所使用的硬體,某些步驟不可能非常準確。 在這種情況下,此部分在更高階層面上列出了步驟,您還必須找到與您自己的硬體相關的詳細資訊。
各個動作步驟如下:
步驟 | 內容 |
---|---|
創建專案 | 在STM32CubeMX建立一個空專案 |
CPU的執行 | 確保MCU以需要的速度執行 |
顯示位於內部RAM中的影像緩衝區 | 在內部RAM中分配影像緩衝區並將內容傳輸到顯示器 |
外部RAM | 啟動外部RAM |
顯示位於外部RAM中的影像緩衝區 | 將影像緩衝區移至外部RAM,並將傳輸到顯示器 |
外部可定址快閃記憶體 | 啟動外部存儲映射快閃記憶體 |
外部塊模式快閃記憶體 | 啟動外部塊模式快閃記憶體 |
硬體加速器 | 啟動Chrom-ART圖形加速器 |
觸控控制器 | 設置與觸控控制器的通信 |
按鈕 | 配置對按鈕的訪問 |
快閃記憶體裝載軟體 | 開發一種方法將數據寫入外部快閃記憶體 |