1、 簡介
CMSIS是通用微控制器軟件接口標準(Common Microcontroller Software Interface Standard )?的簡寫。
CMSIS 包括API、軟件組件、工具及工作流程,主要用于簡化軟件重用、縮短開發人員學習曲線,加快項目構建和調試,從而使產品更快上市。
CMSIS 最初是一個基于 Arm? Cortex?-M 的處理器的硬件抽象層,后來擴展到支持Arm Cortex-A 的一些處理器。為了簡化訪問,CMSIS 定義了通用工具接口,并通過為處理器和外設提供簡單的軟件接口來實現一致的設備支持。
CMSIS 的創建是為了幫助行業實現標準化。它可以在各種開發工具和微控制器上實現一致的軟件層和設備支持。CMSIS 不是一個很大的軟件層,不會帶來很大開銷,也沒有定義標準外設。因此,芯片行業可以通過此通用標準支持各種基于Arm Cortex 處理器的設備。
2、 CMSIS組件
CMSIS 基礎軟件組件
為設備的基本級別功能提供軟件抽象。
在同一 GitHub 存儲庫中維護,并作為一個CMSIS 軟件包提供,名稱為Arm::CMSIS
CMSIS-Core? 對Arm Cortex處理器內核的標準化訪問
CMSIS-Driver 中間件的通用外設驅動程序接口
CMSIS-RTOS2 實時操作系統的通用API
CMSIS 擴展軟件組件
實現針對 Arm 處理器上的執行而優化的特定功能。
在單獨的 GitHub 存儲庫中維護并以獨立的 CMSIS-Pack 形式提供
CMSIS-DSP 嵌入式系統的優化計算功能
CMSIS-NN 高效且高性能的神經網絡內核
CMSIS-View事件記錄器和組件查看器技術
CMSIS-Compiler 重定向標準C運行時庫的I/O函數
CMSIS工具
使用基于 CMSIS 的組件為軟件開發工作流程提供有用的實用程序。
在單獨的 GitHub 存儲庫中維護
CMSIS-Toolbox 一組與軟件包一起使用的命令行工具
CMSIS-Stream用于優化DSP/ML塊數據流的工具和方法
CMSIS-DAP?? 用于連接CoreSight調試訪問端口的調試單元固件
CMSIS-Zone 定義描述系統資源并對它們進行分區
CMSIS 規范
定義嵌入式軟件開發的方法和工作流程。
CMSIS-Pack 軟件組件和設備/板支持的交付機制
CMSIS-SVD 用于調試視圖的外設描述
3、CMSIS 的優勢
CMSIS 降低了學習曲線、開發成本和上市時間。開發人員可以通過各種的標準化軟件接口更快地編寫軟件。
一致的軟件接口提高了軟件的可移植性和可重用性。通用軟件庫和接口提供一致的軟件框架。
提供用于調試連接、調試外設視圖、軟件交付和設備支持的接口,以縮短新微控制器部署的時間。
允許使用您偏好的編譯器,因為它獨立于編譯器,因此主流編譯器都支持。
通過調試器的外圍信息和 printf 樣式輸出的 ITM 通道增強了程序調試。
CMSIS以CMSIS-Pack格式提供,可實現快速軟件交付、簡化更新并實現與開發工具的一致集成。
CMSIS-Zone管理多個處理器、內存區域和外設的配置,簡化系統資源和分區。
IDE 和持續集成 (CI) 是嵌入式軟件開發人員的重要工作流程。CMSIS-Toolbox 提供帶有 CMake 后端的命令行構建工具,并集成到 VS Code 等 IDE 中。
4、CMSIS v6 支持以下工具鏈
Arm 編譯器 v6.10 或更高版本
GCC 10 或更高版本
IAR 8 或更高版本
LLVM/Clang 17 以后版本
注意:對 Arm Compiler v5 的支持已被刪除。(這意味著如果芯片廠家使用 CMSIS6 規范制作的 pack ,那么就無法使用 ARM Compiler v5 進行編譯)