2016年1月9日 星期六

CMSIS-RTOS API



CMSIS-RTOS它是一種作業系統軟體設計架構,  藉由CMSIS RTOS的架構可以用來隠藏底層不同作業系統的差異性。上層應用程式要想利用到OS提供的功能時, CMSIS RTOS 提供一個標準的API供上層來呼叫使用,這個API就如同Linux System call概念一樣。(The CMSIS-RTOS API is a generic RTOS interface for ARM® Cortex®-M processor-based devices)

CMSIS-RTOS 的API界面提作為底層 Real Time kernel (RTOS)與上層應用程式的一個標準介面,並使用一套標準的API, 如此可以讓上層程式不用管底層RTOS的差異, 如此程式碼可以跑在不用RTOS上, 也縮短學習新的RTOS的曲線。

不同RTOS都各自實現自己關於多工處理,例如排程、記憶體管理等功能,但希望有中介層界面存在,使用RTOS API 不必再管底層RTOS是那一套,所有函式呼叫都相同。而CMSIS-RTOS 正是一種基於 ARM® Cortex®-M processor-based 的RTOS中介層界面。


API_Structure.png






OS API 通常會提供下列功能以供使用
  • Task Scheduling
      Task State、Task Priority、 preemptive scheduling
  • Timer Tick
      task delay , software timer 
  • Memory Management - Dynamic memory allocation 
  • Interrupt Handler
  • Task Synchronization
       Semaphore、Mutex、Condition flag 
  • Inter Task communication
       Mailbox、MessageQueue








Keil RTX 即時作業系統(RTOS)使用的就是CMSIS-RTOS 的界面。


RTX_Structure.png


own_lib_projwin.png

沒有留言 :

張貼留言