FreeROTS開發實戰_FreeRTOS概述
FreeRTOS是一個迷你的實時作業系統核心。作為一個輕量級的作業系統,功能包括:任務管理、時間管理、訊號量、訊息佇列、記憶體管理、記錄功能、軟體定時器、協程等,可基本滿足較小系統的需要。
由於RTOS需佔用一定的系統資源(尤其是RAM資源),只有μC/OS-II、embOS、salvo、FreeRTOS等少數實時作業系統能在小RAM微控制器上執行。相對μC/OS-II、embOS等商業作業系統,FreeRTOS作業系統是完全免費的作業系統,具有原始碼公開、可移植、可裁減、排程策略靈活的特點,可以方便地移植到各種微控制器上執行,其最新版本為V9.0.0。
2 環境準備
2.1 下載程式碼
從FreeRTOS的官網www.freertos.org上下載,也可以在http://download.csdn.net/detail/zhzht19861011/9533821 csdn上面進行下載(這個是一個博主上傳的,這裡面要特別感謝,下面的很多文章分享也來自該博主)。
2.2 目錄結構
下載包目錄包含兩個子目錄:FreeRTOS和FreeRTOS-Plus。如下所示:
l FreeRTOS-Plus 包含FreeRTOS+元件和演示例程;
l FreeRTOS 包含FreeRTOS實時核心原始檔和演示例程。
2.2.1 FreeRTOS目錄
Source目錄結構:
在source目錄下面還包括6個C檔案。
RTOS程式碼的核心包含在三個檔案中:tasks.c、queue.c、list.c。
還包含三個可選的檔案:timers.c、event_groups.c、croutine.c,分別實現軟體定時、事件組和協程功能。
另外還有兩個目錄:include和portable
每個支援的處理器架構需要一小段與處理器架構相關的RTOS程式碼。這個是RTOS移植層,它位於FreeRTOS/Source/Portable/[相應編譯器]/[相應CPU架構]子目錄。比如Cortex-M3微控制,使用Keil MDK編譯器,所以需要的RTOS硬體介面程式碼位於:FreeRTOS\Source\portable\RVDS\ARM_CM3資料夾下。
對於FreeRTOS,堆疊設計也屬於移植層。FreeRTOS/Source/portable/MemMang目錄下heap_x.c檔案給出了多種堆疊方案。
Demo目錄結構
FreeRTOS資料夾下的Demo資料夾中還包括各種演示例程,涉及多種架構的處理器以及多種編譯器。
l FreeRTOS/Demo/Common/Minimal資料夾下的演示例程程式碼中,絕大部分對所有移植硬體介面都是適用的。
l FreeRTOS/Demo/Common/Full資料夾下的程式碼屬於歷史遺留程式碼,僅用於PC移植層。
2.2.1 FreeRTOS-plus目錄
FreeRTOS-Plus包含FreeRTOS+元件和演示例程,有興趣的同學自行研究。