CMSIS

ARM Cortex™ 微控制器軟體接口標準(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 處理器系列的與供應商無關的硬體抽象層。 使用CMSIS,可以為處理器和外設實現一致且簡單的軟體接口,從而簡化軟體的重用、縮短微控制器新開發人員的學習過程,並縮短新設備的上市時間。軟體的創建被嵌入式行業公認為主要成本係數。通過在所有Cortex-M 晶片供應商產品中標準化軟體接口,這一成本會明顯降低,尤其是在創建新項目或將現有軟體遷移到新設備時。最新版本的CMSIS為3.5。

百科名片

ARM Cortex™ 微控制器軟體接口標準(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 處理器系列的與供應商無關的硬體抽象層。 使用CMSIS,可以為處理器和外設實現一致且簡單的軟體接口,從而簡化軟體的重用、縮短微控制器新開發人員的學習過程,並縮短新設備的上市時間。軟體的創建被嵌入式行業公認為主要成本係數。通過在所有Cortex-M 晶片供應商產品中標準化軟體接口,這一成本會明顯降低,尤其是在創建新項目或將現有軟體遷移到新設備時。最新版本的CMSIS 為3.5。

結構

CMSIS是ARM公司與多家不同的晶片和軟體供應商一起緊密合作定義的,提供了核心與外設、實時作業系統和中間設備之間的通用接口。

CMSIS軟體層次

CMSIS可以分為多個軟體層次,分別由ARM公司、晶片供應商提供。

其中ARM提供了下列部分,可用於多種編譯器:

● 核心設備訪問層:包含了用來訪問核心的暫存器設備的名稱定義,地址定義和助手函式。同時也為RTOS(實時作業系統)定義了獨立於微控制器的接口,該接口包括調試通道定義。

● 中間設備訪問層:為軟體提供了訪問外設的通用方法。晶片供應商應當修改中間設備訪問層,以適應中間設備組件用到的微控制器上的外設。目前中間設備訪問層仍處於開發過程中,本文不做詳述。 晶片供應商擴展下列軟體層:

● 微控制器外設訪問層:提供片上所有外設的定義。

● 外設的訪問函式(可選):為外設提供額外的助手函式。CMSIS為Cortex-Mx微控制器系統定義了:

● 訪問外設暫存器的通用方法和定義異常向量的通用方法。

● 核心設備的暫存器名稱和核心異常向量的名稱。

● 獨立於微控制器的RTOS接口,帶調試通道。

● 中間設備組件接口(TCP/IP協定棧,快閃記憶體檔案系統)。

CMSIS包含的組件

1、外圍暫存器和中斷定義: 適用於設備暫存器和中斷的一致接口

2、核心外設函式:特定處理器功能和核心外設的訪問函式

3、DSP 庫:最佳化的信號處理算法,並為 SIMD 指令提供Cortex-M4 支持

4、系統視圖說明(SVD):描述設備外設和中斷的XML 檔案。

該標準完全可擴展,可確保其適合於所有 Cortex-M處理器系列微控制器,從最小的8 KB 設備到具有複雜通信外設(如乙太網或USB)的設備。(核心外設函式的記憶體要求少於1 KB 代碼,少於10 位元組RAM)。

基於CMSIS應用程式的基本結構

基於CMSIS應用程式的基本結構基於CMSIS應用程式的基本結構

CMSIS-外設訪問層的檔案

獨立於編譯器的檔案:

● Cortex-M3核心及其設備檔案(core_cm3.h + core_cm3.c)

─ 訪問Cortex-M3核心及其設備:NVIC,SysTick等

─ 訪問Cortex-M3的CPU暫存器和核心外設的函式

● 微控制器專用頭檔案(device.h)

─ 指定中斷號碼(與啟動檔案一致)

─ 外設暫存器定義(暫存器的基地址和布局)

─ 控制微控制器其他特有的功能的函式(可選)

● 微控制器專用系統檔案(system_device.c)

─ 函式SystemInit,用來初始化微控制器

─ 函式Sysem_ExtMemCtl,用來配置外部存儲器控制器。它位於檔案

startup_stm32f10x_xx.s /.c,在跳轉到main前調用

─SystemFrequncy,該值代表系統時鐘頻率

─ 微控制器的其他功能(可選)

編譯器供應商+微控制器專用啟動檔案

● 編譯器啟動代碼(彙編或者C)(startup_device.s)

─ 微控制器專用的中斷處理程式列表(與頭檔案一致)

─ 弱定義(Weak)的中斷處理程式默認函式(可以被用戶代碼復蓋)

CMSIS軟體包詳細目錄

CMSISCMSIS

下載的CMSIS軟體包含有Cortex M3核的支持檔案以及基於Cortex M3核處理器的啟動代碼和庫引導檔案。

使用步驟

以STM32F10XX序列處理為例,介紹CMSIS的使用步驟。

1、從ST官方網站下載3.0以上版本的標準外設庫。

2、基於開發軟體新建工程,建立相應的檔案目錄,注意詢問是否加入啟動檔案時,選擇“否”。

3、根據所選晶片,把Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中的啟動代碼加到工程中。

4、根據處理器FLASH容量的大小,選擇啟動代碼。stm32f10x.h 的66-73 行表明了啟動代碼的類型。例如STM32F10X_HD 行表示大容量的,如果不需要直接注釋掉即可。

5、選擇是否啟用標準外設庫。stm32f10x.h的105行的USE_STDPERIPH_DRIVER用於確定是否啟用,如果不啟用直接注釋掉。

6、確定處理器的頻率。system_stm32f10x.c的110-115行用於確定處理器的頻率,注釋掉不需要的即可。例如處理器的頻率為是36MHz,注釋SYSCLK_FREQ_72MHz,去掉SYSCLK_FREQ_36MHz注釋。

CMSISCMSIS

相關詞條

相關搜尋

熱門詞條

聯絡我們