跳轉到主要內容

11. 快閃記憶體下載

動機

在該步驟中,我們將討論如何把數據載入到外部快閃記憶體。 編譯器將編譯專案中的文字、字體和圖像,並將這些數據生成二進位或十六進位檔。 此數據通常被放入外部快閃記憶體。 內部快閃記憶體被保留用於程式程式碼。

在開發過程中,我們需要一種方法將資料寫入外部快閃記憶體,但從執行快閃記憶體讀取資料的程式時就沒必要做寫入操作。

在開發過程中,我們需要一種方法將資料寫入外部快閃記憶體,但從執行快閃記憶體讀取資料的程式時就沒必要做寫入操作。

  • 為STM32CubeProgrammer撰寫快閃記憶體載入軟體
  • 使用基於應用程式的專有解決方案
Note
如果您的開發板沒有外部快閃記憶體,請跳過此步驟

目標

兩種將資料寫入外部快閃記憶體的常見方法:

驗證

本節的目的為選擇並開發一種將數據載入到外部快閃記憶體的機制。

驗證點基本原理
數據可以刷入外部快閃記憶體可用於影像存儲

先決條件

以下是本節的驗證點:

  • 有關快閃記憶體的資訊,查閱資料手冊
  • 關於MCU與外部快閃記憶體之間的連接的資訊

執行

STM32CubeProgrammer的快閃記憶體載入軟體

STM32CubeProgrammer帶有用於各種STM32評估套件的快閃記憶體載入程式。 快閃記憶體載入軟體是可裝載到MCU的RAM中的小程式,以便對快閃記憶體進行程式設計。

快閃記憶體載入軟體包括兩部分:

  • 配置與快閃記憶體通信所需的GPIO和快閃記憶體介面
  • 釐清快閃記憶體程式設計所需的指令序列的快閃記憶體演算法

這些通常基於現有的快閃記憶體裝載程式。 如果您可以為正在使用的快閃記憶體找到快閃記憶體載入軟體,最好以該軟體作為基礎並修改GPIO部分。 如果您通過複製評估套件中的快閃記憶體電路來設計硬體,則可以直接使用該套件的快閃記憶體裝載軟體。 這就是使用方法。

STM32CubeProgrammer隨附的快閃記憶體載入軟體專案位於安裝資料夾中,其路徑通常為:C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\ExternalLoader

也可在GitHub找到快閃記憶體燒錄軟體專案:

GitHub上的STM32外部快閃記憶體載入器

基於應用程式的專有解決方案

另一種解決方案是將快閃記憶體載入程式碼包含到應用程式本身。 該理念是,您的應用程式中已存在快閃記憶體配置(以便可以從其載入),也許您通過之前的測試已經知道如何寫一塊程式碼到快閃記憶體中。 然後,您只需一種將新的快閃記憶體數據傳輸到您的應用程式的方法。 一種方法是透過UART。 應用程式接收數據流,並將數據逐塊寫入快閃記憶體。

在該操作執行期間,快閃記憶體無法處於記憶體映射模式,因此通常必須將應用程式置於特殊模式。

可在網路找到用於位元組傳輸的開源解決方案。 例如,Y-modem協定在資料上提供16位元 CRC。

測試

可在網路找到用於位元組傳輸的開源解決方案。 例如,Y-modem協定在資料上提供16位元 CRC。

建議立即徹底測試整個快閃記憶體,以儘早發現可能存在的問題。