資源描述:
《小嵌操作系統(tǒng)SmallRTOS常用接口函數(shù)介紹》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、小嵌操作系統(tǒng)SmallRTOS常用接口函數(shù)介紹——SmallRTOS開源網(wǎng)站提供http://www.smallrtos.org“小嵌”操作系統(tǒng)SmallRTOS是一個源代碼開放的、易于移植的、面向深度嵌入式應用的微內核實時操作系統(tǒng),主要應用領域為工業(yè)控制,智能傳感器開發(fā),智能終端,物聯(lián)網(wǎng),機器人等。任何人在遵循SmallRTOS許可協(xié)議的前提下均可免費使用該嵌入式實時操作系統(tǒng)。SmallRTOS系統(tǒng)最新版本源代碼及示例工程的發(fā)布網(wǎng)站為:http://www.smallrtos.org下載到SmallRTOS的源代碼壓縮包后,進行解壓
2、,可以看到SmallRTOS的目錄結構如下:Kernel:存放SmallRTOS的內核文件OS及和CPU相關的移植文件;Demo:存放SmallRTOS提供的示例文件;Doc:存放SmallRTOS相關說明/教程文檔;License:存放SmallRTOS使用許可;小嵌操作系統(tǒng)SmallRTOS在設計時,其文件命名、函數(shù)名及變量命名由專用的前綴進行區(qū)分:前綴為OS,表示為SmallRTOS的內核,這些是與平臺無關的內核部分,在進行跨平臺移植時,無需更改;前綴為Fit,表示為硬件(芯片類型等)相關的部分,在進行移植時,這一部分的文件、函
3、數(shù)及變量需要根據(jù)硬件平臺(芯片類型等)進行適當?shù)恼{整;為了突顯嵌入式操作系統(tǒng)配置及裁剪的靈活性,在SmallRTOS系統(tǒng)設計之初就進行了全面的考量,系統(tǒng)中相關參數(shù)及功能模塊采用了宏定義的方式進行配置,常用的配置參數(shù)均保存在文件“OSType.h”中。系統(tǒng)中常用的配置如下所示:OSTICK_RATE_HZ:該參數(shù)配置了系統(tǒng)運行的“速率”,其決定了系統(tǒng)內核調度的最小時間粒度。默認配置為1000Hz,最小時間粒度為1毫秒。在Demo示例工程中,采用configTICK_RATE_HZ配置;OSTICKS_PER_MS:該參數(shù)用于表示每毫秒時
4、間內系統(tǒng)運行的Ticks數(shù)量,Ticks具體含義稍后會介紹,該參數(shù)與OSTICK_RATE_HZ關聯(lián),無需用戶專門配置;用戶也可以通過OSM2T()把毫秒轉換為Ticks計數(shù);OSNAME_MAX_LEN:系統(tǒng)中名稱的最大長度,包括任務名稱,軟件定時器名稱等,默認配置為10字節(jié)。在Demo示例工程中,采用configMAX_NAME_LEN配置;OSLOWEAST_PRIORITY:系統(tǒng)最低優(yōu)先級數(shù)值,配置為0;OSHIGHEAST_PRIORITY:系統(tǒng)可使用的優(yōu)先級數(shù)。原則上講,系統(tǒng)不會限制優(yōu)先級數(shù)量,不過優(yōu)先級越多,占用的資源越
5、多,推薦優(yōu)先級數(shù)不超過32,系統(tǒng)默認優(yōu)先級數(shù)為8。由于任務最低優(yōu)先級從0開始,則用戶實際可使用的優(yōu)先級范圍為0到OSHIGHEAST_PRIORITY-1。在附帶的Demo示例工程中,通過宏定義變量configMAX_PRIORITIES對優(yōu)先級數(shù)進行配置;OSTOTAL_HEAP_SIZE:為小嵌操作系統(tǒng)分配的??臻g大小。用戶采用系統(tǒng)函數(shù)創(chuàng)建的任務、信號量、互斥信號量、消息隊列、軟件定時器等均使用該??臻g。在Demo示例工程中,采用configTOTAL_HEAP_SIZE配置。OSMINIMAL_STACK_SIZE:為任務分配的
6、最小??臻g大小,默認配置32個字長。任務使用的棧空間量由具體的任務決定,若任務中局部變量較多,使用空間較大,則需配置更大的??臻g。在Demo示例工程中,采用configMINIMAL_STACK_SIZE配置;OSPEND_FOREVER_VALUE:定義永久掛起的數(shù)值,用于信號量、互斥信號量、消息隊列等永久等待定義數(shù)值,在32位寬的芯片中,推薦配置為0xFFFFFFFF。在Demo示例工程中,采用configPEND_FOREVER_VALUE配置;OS_SEMAPHORE_ON:是否啟用系統(tǒng)信號量的標識。數(shù)值為1則啟用信號量功能,
7、數(shù)值為0,則不啟用信號量。在Demo示例工程中,采用configUSE_SEMAPHORE配置;OS_MSGQ_ON:是否啟用消息隊列的標識。數(shù)值為1則啟用消息隊列,數(shù)值為0,則不啟用消息隊列。在Demo示例工程中,采用configUSE_MSGQ配置;OSMSGQ_MAX_MSGNUM:消息隊列中保存的消息數(shù)量,默認配置為5。在向該消息隊列發(fā)送消息時,若消息數(shù)達到該數(shù)值時,則消息隊列已滿,需掛起等待,或者把舊數(shù)據(jù)沖掉。在Demo示例工程中,采用configMSGQ_MAX_MSGNUM配置;OS_MUTEX_ON:是否啟用互斥信號量
8、的標識。數(shù)值為1則啟用互斥信號量,數(shù)值為0,則不啟用互斥信號量。在Demo示例工程中,采用configUSE_MUTEX配置;OS_TIMER_ON:是否啟用軟件定時器的標識。數(shù)值為1則啟用軟件定時器,數(shù)值為0,則不啟用