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

一文讀懂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管理器輕松地下載、安裝和更新所需的軟件包,無需手動配置或搜尋。