STM32Cube擴充套件包開發指南

2021-10-06 02:55:05 字數 3653 閱讀 8085

本文翻譯於st官網文件,《development guidelines for stm32cube expansion packages》

4. 包裝要求

5. 新的中介軟體整合

6. 軟體質量要求

介紹stmcube™是意法半導體的一項原始計畫,旨在通過以下方式使開發人員的生活更輕鬆。減少開發工作量,時間和成本。 stm32cube涵蓋了整個stm32產品組合。

stm32cube包括:

stm32cube hal,一種stm32抽象層嵌入式軟體,可確保 最大化stm32產品組合的可移植性。 hal適用於所有外圍裝置

底層api(ll)提供了快速輕量的面向專家的層,該層是 比hal更接近硬體。 ll api僅適用於一組外設。

一套一致的中介軟體元件,例如rtos,usb,tcp / ip和 圖形

所有嵌入式軟體實用程式,隨附全套示例

此外,stm32cube擴充套件軟體包包含嵌入式軟體元件,這些元件補充了stm32cube mcu軟體包的功能,或者使能夠在各種應用領域中使用大量st器件以及最合適的stm32微控制器,或者同時使用這兩者。

本文件介紹了stm32cube擴充套件軟體包開發的相容性要求,該相容性要求確保與stm32cube mcu軟體包和工具的正確匹配,以及stm32cube生態系統內的總體一致性,從而能夠基於經過驗證的軟體元素快速進行應用程式開發。

本文件的讀者必須熟悉stm32cube架構,hal和ll api以及程式設計模型。完整的文件集可從www.st.com上的stm32cube mcu軟體包頁面獲得。

1. 總體資訊

stm32cube mcu軟體包和stm32cube擴充套件軟體包在基於arm®cortex®-m處理器的stm32 32位微控制器上執行。

2. 參考和首字母縮寫詞

www.st.com上的以下文件同時用於stm32cube擴充套件包的開發:

stm32cube擴充套件包(um2312)的開發清單

表1列出了與更好地理解本文件有關的首字母縮寫詞的定義。

3. stm32cube mcu軟體包和stm32cube擴充套件軟體包

stm32cube解決方案由工具部分stm32cubemx和stm32cube mcu軟體包組成,後者提供了受益於stm32微控制器功能的軟體模組。

除了stm32cubemx和stm32cube mcu軟體包之外,stm32cube擴充套件軟體包還通過補充外掛程式豐富了整個stm32cube生態系統。

3.1 stm32cube mcu軟體包

stm32cube mcu軟體包(例如stm32f4系列中用於微控制器的stm32cubef4)提供了使用stm32微控制器硬體功能所需的所有必要軟體模組。

stm32cube mcu軟體包主要包含:

– hal(硬體抽象層)

– ll(低階api)

– rtos,tcp / ip,tls / ssl,usb,圖形,檔案系統,jpeg等

–評估板

–發現套件

–核心板

stm32cube嵌入式軟體以mix liberty + oss +第三方v1混合許可模式分發,如www.st.com所述。

圖2展示了stmicroelectronics分發,維護和支援的stm32cube mcu軟體包的頂層結構。

3.2 stm32cube擴充套件軟體包

stm32cube擴充套件軟體包包含用於補充stm32cube mcu軟體包功能的附加軟體元件,用於:

4. 包裝要求

stm32cube mcu軟體包是任何stm32cube擴充套件軟體包的基礎。

因此,應始終組織資料夾和檔案結構,而不修改原始資料夾結構,如第9頁上的圖3所示。

stm32cube擴充套件包開發清單檔案[1]中提供了stm32cube擴充套件包內容的詳細要求。

4.1 使用stm32cubemx開發示例

在stm32cube擴充套件包中,應使用stm32cubemx工具開發示例。此要求意味著開發滿足以下規則:

4.2 stm32cube mcu軟體包驅動程式和中介軟體的擴充套件

在某些特定情況下,可能會需要stm32cube擴充套件軟體包的開發人員更新stm32cube mcu軟體包中提供的本機驅動程式(hal / ll,cmsis和bsp)或中介軟體(例如,用於擴充套件已實現的功能,在正式st版本之前及早修復錯誤或其他)。

在這種情況下,使用者應按以下步驟進行:

通過附加_patch字尾來重新命名要修補的檔案。

在專案中使用修補的檔案而不是原始檔案。

圖4提供了乙個示例,其中以紅色概述的檔案是自定義的,以實現usb裝置音訊流應用程式所需的特定功能,而stm32cube mcu軟體包本身不支援這些功能。

5. 新的中介軟體整合

5.1 要求

中介軟體元件是位於stm32硬體和使用者應用程式之間的韌體層。基本上,任何新的中介軟體元件都必須符合以下要求:

5.2 組織

中介軟體元件通常由以下組成:

根據中介軟體元件的不同,介面層可以屬於以下類別之一:

與cpu的介面僅取決於所使用的stm32核心:在這種情況下,介面檔案應位於middlewares目錄中,並由使用同一核心的所有應用程式使用。

freertos可以作為示例,因為它為每個arm core(例如cortex @ -m3,cortex @ -m4或其他)和每個編譯器提供了移植檔案,因為需要一些彙編**來處理上下文切換和暫存器。儲存和還原機制。

介面檔案在中介軟體​​結構中的位置如圖6所示。

與hal,ll和bsp驅動程式的介面:在某些中介軟體元件中,該介面是一組空的或幾乎空的功能,使用者需要填充這些功能才能將其與hal和ll層鏈結。通常,介面檔案與中介軟體元件一起作為模板檔案提供。必須在應用程式層中複製和自定義它們。

介面檔案在中介軟體​​結構中的位置如圖7所示。

每個子資料夾必須包含乙個inc資料夾和乙個\ src資料夾,分別位於標頭檔案(「 .h)和原始檔(」 .c)的位置。

如果中介軟體元件很簡單;子資料夾\ core,modules和\ porting可以刪除;然後,僅應在中介軟體元件根級別提供inc和\ src子資料夾。

5.3 以物件格式交付

當中介軟體庫以二進位制或物件格式交付時,它必須符合一組最低要求:

例如,librarynamev_cmx_c_o.a是乙個庫物件檔名,其中:

6. 軟體質量要求

(僅當擴充套件元件的開發者不擁有的sw元件上存在警告時,才接受警告)。

bsp驅動程式和中介軟體必須符合以下附加要求:

STM32cube學習筆記(1)

1 偶然的機會接觸到了stm32cubemx與stm32cubefx 詳細了解相關的資料之後感覺相當實用。2 程序建立 osthreaddef defaulttask,startdefaulttask,osprioritynormal,0,128 定義乙個結構體 defaulttaskhandle ...

STM32Cube庫的使用

stm32cubemx 軟體的使用 stm32cubemx使用詳解 這是st的論壇,在這裡基本滿足了大多開發者的使用需求。stm32cubemx使用方法及功能介紹 embedddeveloper部落格 ybhuangfugui 可謂是緊跟隨stm32應用的神仙級行業領軍人物 st入門高階學習必讀,太...

STM32Cube 直接儲存器訪問(DMA)

在usart章節講解了串列埠的輪詢和中斷模式,這一章介紹一下通過dma模式控制串列埠傳輸。直接儲存器訪問 dma 用於在外設與儲存器之間以及儲存器與儲存器之間提供高速資料傳輸。可以在無需任何 cpu 操作的情況下通過 dma 快速移動資料。這樣節省的 cpu 資源可供其它操作使用。說白了dma就是乙...