CMSIS是一組工具、API、框架和工作流程,有助于簡(jiǎn)化軟件重用、減少微控制器開發(fā)人員的學(xué)習(xí)曲線、加快項(xiàng)目構(gòu)建和調(diào)試,從而縮短新應(yīng)用程序的上市時(shí)間。
CMSIS 最初是一個(gè)基于 Arm? Cortex?-M 處理器并獨(dú)立于供應(yīng)商的硬件抽象層,后來擴(kuò)展到支持基于 Arm Cortex-A 的入門級(jí)處理器。為了簡(jiǎn)化訪問,CMSIS 定義了通用工具接口,并通過向處理器和外圍設(shè)備提供簡(jiǎn)單的軟件接口來實(shí)現(xiàn)一致的設(shè)備支持。
CMSIS 是與各種芯片和軟件供應(yīng)商密切合作定義的,它提供了一種通用方法來連接外圍設(shè)備、實(shí)時(shí)操作系統(tǒng)和中間件組件。它旨在實(shí)現(xiàn)來自多個(gè)供應(yīng)商的軟件組件的組合。
CMSIS 是開源的,在GitHub 上協(xié)作開發(fā)。
CMSIS-... | 支持的處理器 | 說明 |
Core(M) | All Cortex-M, SecurCore | Cortex-M 處理器內(nèi)核和外設(shè)的標(biāo)準(zhǔn)化 API。 包括 Cortex-M4/M7/M33/M35P SIMD 指令的內(nèi)在函數(shù)。 |
Core(A) | Cortex-A5/A7/A9 | 用于 Cortex-A5/A7/A9 處理器內(nèi)核和外圍設(shè)備的 API 和基本運(yùn)行時(shí)系統(tǒng)。 |
Driver | All Cortex | 中間件的通用外設(shè)驅(qū)動(dòng)接口。將微控制器外圍設(shè)備與實(shí)現(xiàn)通信協(xié)議棧、文件系統(tǒng)或圖形用戶界面等的中間件連接起來。 |
DSP | All Cortex-M | DSP 庫(kù)集合,包含 60 多種函數(shù),適用于各種數(shù)據(jù)類型:定點(diǎn)(小數(shù) q7、q15、q31)和單精度浮點(diǎn)(32 位)。用于 Cortex-M4/M7/M33/M35P針對(duì) SIMD 指令集優(yōu)化。 |
NN | All Cortex-M | 高效神經(jīng)網(wǎng)絡(luò)內(nèi)核的集合,旨在最大限度地提高性能并最大限度地減少 Cortex-M 處理器內(nèi)核上的內(nèi)存占用。 |
RTOS v1 | Cortex-M0/M0+/M3/M4/M7 | 實(shí)時(shí)操作系統(tǒng)的通用 API 以及基于 RTX 的參考實(shí)現(xiàn)。它支持可以跨多個(gè) RTOS 系統(tǒng)工作的軟件組件 |
RTOS v2 | All Cortex-M, Cortex-A5/A7/A9 | 使用 Armv8-M 支持、動(dòng)態(tài)對(duì)象創(chuàng)建、多核系統(tǒng)配置、二進(jìn)制兼容接口擴(kuò)展 CMSIS-RTOS v1。 |
Pack | All Cortex-M, SecurCore, Cortex-A5/A7/A9 | 描述軟件組件、設(shè)備參數(shù)和評(píng)估板支持的交付機(jī)制。它簡(jiǎn)化了軟件重用和產(chǎn)品生命周期管理 (PLM)。是Open CMSIS Pack 項(xiàng)目的一部分。 |
Build | All Cortex-M, SecurCore, Cortex-A5/A7/A9 | 一組提高生產(chǎn)力的工具、軟件框架和工作流程,例如持續(xù)集成 (CI) 支持。替換為CMSIS-Toolbox。 |
SVD | All Cortex-M, SecurCore | 可用于在調(diào)試器或 CMSIS-Core 頭文件中創(chuàng)建外圍設(shè)備感知的設(shè)備的外圍設(shè)備描述。 |
DAP | All Cortex | 與 CoreSight 調(diào)試訪問接口的調(diào)試單元的固件。 |
Zone | All Cortex-M | 定義描述系統(tǒng)資源并將這些資源劃分為多個(gè)項(xiàng)目和執(zhí)行區(qū)域的方法。 |
CMSIS 的好處是:
1. CMSIS 降低了學(xué)習(xí)曲線、開發(fā)成本和上市時(shí)間。開發(fā)人員可以通過各種易于使用的標(biāo)準(zhǔn)化軟件接口更快地編寫軟件。
2. 一致的軟件接口提高了軟件的可移植性和可重用性。通用軟件庫(kù)和接口提供一致的軟件框架。
3. 它提供用于調(diào)試連接、調(diào)試外設(shè)視圖、軟件交付和設(shè)備支持的接口,以縮短新微控制器部署的上市時(shí)間。
4. 它允許使用您選擇的編譯器,因?yàn)樗?dú)立于編譯器,因此受到主流編譯器的支持。
5. 它通過調(diào)試器的外圍信息和用于 printf 樣式輸出的 ITM 通道增強(qiáng)了程序調(diào)試。
6. CMSIS 以 CMSIS-Pack 格式交付,可實(shí)現(xiàn)快速軟件交付、簡(jiǎn)化更新并實(shí)現(xiàn)與開發(fā)工具的一致集成。
7. CMSIS-Zone 將簡(jiǎn)化系統(tǒng)資源和分區(qū),因?yàn)樗芾矶鄠€(gè)處理器、內(nèi)存區(qū)域和外圍設(shè)備的配置。
8. 持續(xù)集成是當(dāng)今大多數(shù)軟件開發(fā)人員的常見做法。CMSIS-Build 支持這些工作流程并使持續(xù)測(cè)試和驗(yàn)證更容易。
來源:https://arm-software.github.io/CMSIS_5/General/html/index.html