當前位置: 華文世界 > 科技

一文讀懂CMSIS軟體

2024-09-07科技

CMSIS 是Cortex Microcontroller Software Interface Standard的縮寫,中文為Cortex系列微控制器軟體介面標準。它是由ARM公司、芯片供應商和軟體供應商共同制定的一種通用、高效、靈活和易用的軟體標準,旨在為Cortex-M微控制器設計的軟體開發提供一致的硬體抽象層和簡單的軟體介面。

CMSIS主要包括以下幾個部份:

  • CMSIS-Core :提供了對Cortex-M內核和外設的存取介面,包括寄存器定義、系統啟動程式碼、時鐘配置、例外處理等。
  • CMSIS-Driver :提供了對微控制器外設的存取函式,包括GPIO、UART、SPI、I2C、ADC等。
  • CMSIS-DSP :提供了一系列數位訊號處理演算法庫,包括正余弦、矩陣計算、FFT等。
  • CMSIS-NN :提供了一系列機器學習演算法庫,包括摺積神經網路、迴圈神經網路等。
  • CMSIS-RTOS :提供了一種即時作業系統的通用API,可以支持多種作業系統和中介軟體元件,如FreeRTOS、RT-Thread等。
  • CMSIS-DAP :提供了一種Cortex-M內核處理器的開源偵錯程式固件,可以與其他邏輯電路整合在同一芯片上。
  • CMSIS-Zone :提供了一種多核配置、TrustZone安全擴充套件和MPU設定的工具。
  • CMSIS-SVD :提供了一種系統檢視描述檔,以XML格式描述了外設資訊和其他裝置參數
  • CMSIS軟體架構由以下四層構成:

  • 核內外設存取層(CPAL,CorePeripheraIAccessLayer) :由ARM實作,包括對寄存器名稱、地址的定義,內核寄存器、NVIC、偵錯子系統的存取介面定義以及對特殊用途寄存器的存取介面(例如:CONTROL,xPSR)定義。
  • 片上外設存取層(DPAL,DevicePeripheraIAccessLayer) :該層由芯片廠商負責實作,負責對硬體寄存器地址以及外設存取介面進行定義。該層可呼叫CPAL層提供的介面函式同時根據裝置的特性對異常向量表進行擴充套件,以處理相應外設的中斷請求。
  • 外設存取函式(AFP,AccessFunctionsforPeripherals) :該層也由芯片廠商負責實作,提供存取片上外設的存取函式,該部份可選。
  • 作業系統及中介軟體介面層(OSMI,OperatingSystemandMiddlewareInterfaceLayer) :該層提供了與作業系統和中介軟體元件的一致軟體介面,例如CMSIS-RTOS、CMSIS-DSP、CMSIS-Driver、CMSIS-Pack、CMSIS-SVD、CMSIS-DAP和CMSIS-NN等。
  • CMSIS軟體架構的優勢主要有以下幾點:

  • 一致性 :CMSIS提供了一致的裝置支持和簡單的軟體介面,使得不同的微控制器和外設可以使用相同的軟體程式碼,無需修改或重新編寫。這樣可以提高軟體的可重用性和可移植性,降低開發者的學習成本和開發時間。
  • 最佳化性 :CMSIS包含了一些針對不同Cortex-M處理器核心最佳化的軟體庫,例如CMSIS-DSP、CMSIS-NN等。這些庫提供了豐富的數位訊號處理和神經網路功能,可以提高軟體的效能和效率。
  • 靈活性 :CMSIS支持多種作業系統和中介軟體元件,例如CMSIS-RTOS、CMSIS-Driver等。這些元件提供了與硬體無關的抽象層,使得開發者可以根據自己的需求選擇合適的軟體框架和功能。
  • 易用性 :CMSIS提供了一種軟體包的交付機制(CMSIS-Pack),可以包含裝置、板卡和軟體元件的資訊。開發者可以透過CMSIS-Pack管理器輕松地下載、安裝和更新所需的軟體包,無需手動配置或搜尋。