《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CMSIS標準的Cortex-M3的應用軟件開發
基于CMSIS標準的Cortex-M3的應用軟件開發
摘要: 本文闡述了基于CMSIS標準的軟件架構、規范,并通過一個實例更加清晰地解讀了CMSIS作為一個新的基于Cortex-M核處理器系列的軟件開發標準所具有的巨大潛力。它不僅降低了軟件開發的難度,更減少了軟件開發的成本。因此,工程師盡早掌握CMSIS標準,對進行基于Cortex-M3處理器的軟件開發會大有幫助。
Abstract:
Key words :

  引 言

  ARM公司于2008年11月12日發布了ARM Cortex微控制器軟件接口標準(CMSIS:Cortex Microcon-troller Software InteRFace Standard)。CMSIS是獨立于供應商的Cortex-M處理器系列硬件抽象層,為芯片廠商和中間件供應商提供了連續的、簡單的處理器軟件接口,簡化了軟件復用,降低了Cortex-M3上操作系統的移植難度,并縮短了新入門的微控制器開發者的學習時間和新產品的上市時間。

  根據近期的調查研究,軟件開發已經被嵌入式行業公認為最主要的開發成本。圖1為近年來軟件開發與硬件開發成本對比圖。因此,ARM與Atmel、IAR、Keil、hami-nary Micro、Micrium、NXP、SEGGER和ST等諸多芯片和軟件廠商合作,將所有Cortex芯片廠商產品的軟件接口標準化,制定了CMSIS標準。此舉意在降低軟件開發成本,尤其針對新設備項目開發,或者將已有軟件移植到其他芯片廠商提供的基于Cortex處理器的微控制器的情況。有了該標準,芯片廠商就能夠將他們的資源專注于產品外設特性的差異化,并且消除對微控制器進行編程時需要維持的不同的、互相不兼容的標準的需求,從而達到降低開發成本的目的。

 

  1 基于CMSIS標準的軟件架構

  如圖2所示,基于CMSIS標準的軟件架構主要分為以下4層:用戶應用層、操作系統及中間件接口層、CMSIS層、硬件寄存器層。其中CMSIS層起著承上啟下的作用:一方面該層對硬件寄存器層進行統一實現,屏蔽了不同廠商對Cortex-M系列微處理器核內外設寄存器的不同定義;另一方面又向上層的操作系統及中間件接口層和應用層提供接口,簡化了應用程序開發難度,使開發人員能夠在完全透明的情況下進行應用程序開發。也正是如此,CMSIS層的實現相對復雜。

 

  CMSIS層主要分為3部分。

  ①核內外設訪問層(CPAL):由ARM負責實現。包括對寄存器地址的定義,對核寄存器、NVIC、調試子系統的訪問接口定義以及對特殊用途寄存器的訪問接口(如CONTROL和xPSR)定義。由于對特殊寄存器的訪問以內聯方式定義,所以ARM針對不同的編譯器統一用_INLINE來屏蔽差異。該層定義的接口函數均是可重入的。

  ②中間件訪問層(MWAL):由ARM負責實現,但芯片廠商需要針對所生產的設備特性對該層進行更新。該層主要負責定義一些中間件訪問的API函數,例如為TCP/IP協議棧、SD/MMC、USB協議以及實時操作系統的訪問與調試提供標準軟件接口。該層在1.1標準中尚未實現。

  ③設備外設訪問層(DPAL):由芯片廠商負責實現。該層的實現與CPAL類似,負責對硬件寄存器地址以及外設訪問接口進行定義。該層可調用CPAL層提供的接口函數,同時根據設備特性對異常向量表進行擴展,以處理相應外設的中斷請求。

  2 CMSIS規范

  (1)文件結構

  CMSIS的文件結構如圖3所示(以STM32為例)。其中stdint.h包括對8位、16位、32位等類型指示符的定義,主要用來屏蔽不同編譯器之前的差異。core_cm3.h和core_cm3.C中包括Cortex_M3核的全局變量聲明和定義,并定義一些靜態功能函數。system_.h和system_.c(即圖3中的system_stm32.h和system_stm32.c)是不同芯片廠商定義的系統初始化函數SystemInit(),以及一些指示時鐘的變量(如SystemFre-quency)。.h(即圖3中的stm32.h)是提供給應用程序的頭文件,它包含core_cm3.h和system_.h,定義了與特定芯片廠商相關的寄存器以及各中斷異常號,并可定制M3核中的特殊設備,如MCU、中斷優先級位數以及SysTick時鐘配置。雖然CMSIS提供的文件很多,但在應用程序中只需包含h。

 

  (2)工具鏈

  CMSIS支持目前嵌入式開發的三大主流工具鏈,即ARM ReakView(armcc)、IAR EWARM(iccarm)以及GNU工具鏈(gcc)。通過在core_cm3.C中的如下定義,來屏蔽一些編譯器內置關鍵字的差異。

 

  這樣,CPAL中的功能函數就可以被定義成靜態內聯類型(static_INLINE),實現編譯優化。

  (3)中斷異常

  CMSIS對異常和中斷標識符、中斷處理函數名以及中斷向量異常號都有嚴格的要求。異常和中斷標識符需加后綴_IRQn,系統異常向量號必須為負值,而設備的中斷向量號是從0開始遞增,具體的定義如下所示(以STM32為例):

  CMSIS對系統異常處理函數以及普通的中斷處理函數名的定義也有所不同。系統異常處理函數名需加后綴_Handler,而普通中斷處理函數名則加后綴_IRQHandler。這些異常中斷處理函數被定義為weak屬性,以便在其他的文件中重新實現時不出現重復定義的錯誤。這些處理函數的地址用來填充中斷異常向量表,并在啟動代碼中給以聲明,例如:NMI_Handler、MemManage_Handler、SysTick_Handler、WWDG_IRQHandler等。
 


 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品视频免费观看| 精品成人一区二区| 欧美在线播放高清精品| 中国成人在线视频| 99精品欧美一区| 亚洲激情一区| 亚洲高清一二三区| 亚洲电影免费在线观看| 欧美一区二区免费观在线| 亚洲欧洲av一区二区| 午夜精品久久久久久99热软件| 亚洲视频一二| 亚洲天堂成人在线观看| 亚洲视频成人| 亚洲午夜黄色| 亚洲一区二区在| 午夜精品久久久久久99热软件| 亚洲欧洲99久久| 欧美在线视频在线播放完整版免费观看 | 怡红院精品视频| 影院欧美亚洲| 亚洲电影一级黄| 亚洲第一视频网站| 亚洲激情第一页| 亚洲欧洲一区二区三区久久| 最新热久久免费视频| 亚洲精一区二区三区| 99精品视频免费观看| 亚洲先锋成人| 欧美亚洲视频在线观看| 久久都是精品| 亚洲精品一区二区在线| 一区二区三区欧美亚洲| 亚洲一区二区高清| 欧美一区二区在线看| 久久精品日韩一区二区三区| 久久久综合网站| 久久久亚洲国产天美传媒修理工 | 久久久久久夜| 麻豆av一区二区三区| 欧美成人影音| 欧美日韩国产精品一卡| 国产精品国产精品国产专区不蜜| 国产女精品视频网站免费| 国产一区二区0| 在线观看成人一级片| 亚洲精品中文在线| 亚洲天堂网站在线观看视频| 欧美一区亚洲| 亚洲免费观看在线视频| 亚洲欧美日韩精品久久亚洲区| 久久精品网址| 欧美激情精品久久久久| 欧美午夜精品电影| 国产日本精品| 亚洲大片一区二区三区| aa级大片欧美| 欧美一区二区黄色| 日韩写真在线| 欧美一区二区三区啪啪| 免费成人网www| 欧美性一二三区| 国产综合色在线| 日韩亚洲欧美精品| 欧美在线精品一区| 在线亚洲+欧美+日本专区| 欧美在线视频一区二区| 欧美激情一区二区三区不卡| 国产九九精品| 亚洲人成网站在线观看播放| 性欧美办公室18xxxxhd| 亚洲一区二区三区四区视频| 亚洲国产欧美一区二区三区丁香婷| 亚洲视频久久| 美女精品国产| 国产精品视频久久久| 亚洲国产老妈| 欧美一区二区精美| 亚洲天堂偷拍| 欧美**人妖| 国产亚洲激情在线| 99精品国产一区二区青青牛奶| 欧美一区在线视频| 亚洲一区在线观看视频 | 日韩系列在线| 久久日韩精品| 国产精品乱码一区二三区小蝌蚪| 狠狠色丁香久久婷婷综合_中| 中日韩高清电影网| 亚洲日本一区二区| 久久久久国内| 国产精品免费一区豆花| 亚洲精品国产视频| 亚洲国产成人在线视频| 欧美一级理论片| 欧美日韩午夜在线视频| 黄色一区二区三区| 亚洲欧美日韩精品久久亚洲区| 一区二区三区 在线观看视| 麻豆国产va免费精品高清在线| 国产精品一区二区你懂的| 日韩一级二级三级| 日韩午夜免费| 欧美激情一区| 亚洲福利在线视频| 亚洲电影免费观看高清完整版在线| 香蕉久久夜色| 国产精品99免视看9| 亚洲日本va午夜在线影院| 亚洲国产精品久久| 久久字幕精品一区| 国产一区二区在线观看免费| 亚洲男人第一av网站| 亚洲桃色在线一区| 欧美日韩精品是欧美日韩精品| 伊伊综合在线| 亚洲国产日韩一区| 久久综合久久综合久久综合| 国产一区二区中文字幕免费看| 午夜亚洲视频| 欧美中文字幕第一页| 国产美女在线精品免费观看| 亚洲综合日韩| 欧美在线黄色| 国产日韩欧美一区| 性久久久久久久| 久久久久久尹人网香蕉| 国产在线播精品第三| 欧美一级专区| 久久精品日产第一区二区| 国产视频在线观看一区| 西西裸体人体做爰大胆久久久| 久久本道综合色狠狠五月| 国产精品自在欧美一区| 亚洲欧美日韩在线播放| 久久久成人精品| 一区二区三区我不卡| 亚洲国产精品999| 欧美va亚洲va香蕉在线| 亚洲欧洲一区二区三区在线观看| 亚洲伦理在线| 国产精品va在线| 亚洲一区二区高清视频| 欧美在线播放一区| 国内一区二区三区在线视频| 亚洲国产人成综合网站| 欧美激情成人在线| 日韩一级黄色av| 香蕉av福利精品导航| 国产有码一区二区| 亚洲国产天堂久久国产91| 欧美激情麻豆| 9l国产精品久久久久麻豆| 亚洲在线一区二区三区| 国产欧美精品日韩| 亚洲福利电影| 欧美日韩 国产精品| 在线一区二区日韩| 久久黄色小说| 在线日韩电影| 在线一区二区三区四区五区| 国产精品日韩电影| 久久成人免费日本黄色| 欧美国产欧美亚洲国产日韩mv天天看完整 | 午夜一区在线| 一区在线视频观看| 一本色道久久综合亚洲精品不| 国产精品久久波多野结衣| 欧美一区二区视频观看视频| 免费视频亚洲| 一区二区三区国产| 久久精品国产69国产精品亚洲| 在线观看日韩av电影| 亚洲性视频h| 激情文学一区| 亚洲一级黄色| 国语精品中文字幕| 99视频在线精品国自产拍免费观看| 国产精品yjizz| 亚洲第一在线| 欧美日韩免费观看一区三区 | 欧美日韩一区三区| 欧美一区二区播放| 欧美激情一区二区三区不卡| 亚洲欧美另类国产| 欧美精彩视频一区二区三区| 亚洲欧美中文字幕| 欧美理论电影在线观看| 欧美一区二区三区喷汁尤物| 欧美日韩1234| 久久精品99国产精品酒店日本| 欧美三级中文字幕在线观看| 久久av一区二区三区| 欧美新色视频| 亚洲黑丝一区二区| 国产精品网站一区| 亚洲精品社区| 国内成+人亚洲| 午夜电影亚洲| 亚洲精选中文字幕|