CMSIS是什么

ARM 450瀏覽

CMSIS是什么,雖然名字跟CMMI很像,但其實沒什么關系。

借用百度百科的釋義:ARM Cortex? 微控制器軟件接口標準(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 處理器系列的與供應商無關的硬件抽象層。

簡言之,CMSIS是由ARM公司和眾多生產Cortex-M處理器的公司共同定義的一種軟件接口標準,以實現不同Cortex-M處理器的軟件重用,降低遷移成本。Cortex-M處理器是用來替代ARM7系列的,但CMSIS標準是隨著Cortex-M的普及而提出的,ARM公司意識到了ARM7時代各個廠商的產品兼容性、可遷移性差的問題。同時從單片機開發繼承而來傳統的“基于寄存器”的開發方式的效率和開發人員培養難度越來越無法適應日趨復雜的應用開發。

嵌入式軟件從業人員要么是從單片機開發轉來的,要么是從PC端應用開發轉來的。前者有一定的電路和處理器芯片知識,但缺乏現代軟件開發的方法和工程理論。后者普遍有高級開發語言的經歷(C#,Java等)、了解諸如面向對象開發等較先進的方法,但他們缺乏電路和芯片的知識,甚至對寄存器都很難理解。

CMSIS的出現無疑對基于CM芯片的開發帶來了福音,其分層結構使軟件有了良好的架構,降低了系統遷移的難度。對寄存器操作的封裝(各廠商提供)降低了軟件開發人員的難度。

借用百度百科對CMSIS軟件層次和組件的說明

(http://baike.baidu.com/link?url=pCmFJDdCNjcwZCSP9hSwbQSRbsx1ah0FGPDHUXJ9DUR8tuIkJfUwefFYL2HkZbh3wylsWx5oIMDXTB1-Z5-j2K#refIndex_1_5152578)

 

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)。

 

 

另外,Keil從v5.0版本開始內置了CMSIS的支持,相信隨著新版本的發布,基于CMSIS體系的開發將受到廠商和開發人員的青睞。

 

七星彩走势图2元网官网