1. 程式人生 > >FreeROTS開發實戰_FreeRTOS概述

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+元件和演示例程,有興趣的同學自行研究。