FreeRTOS学习及移植笔记之一:开始FreeRTOS之旅
1、必要的準備工作
工欲善其事,必先利其器,在開始學習和移植之前,相應的準備工作必不可少。所以在開始我們寫要準備如下:
-  測試環境:我準備在STM32F103平臺上移植和測試FreeRTOS系統 
-  準備FreeRTOS系統源碼,從官網下載最新版本的程序包,最新為v9.0.0,地址:https://sourceforge.net/projects/freertos/ 
-  從官網查看FreeRTOS每個函數的API說明,以及相應的例子。根據以往的經驗,在學習過程中應該會經常查看,地址: http://www.freertos.org/a00106.html 
?
2、了解FreeRTOS源文件的目錄結構
下載的FreeRTOS下載包是一個自解壓的文件,解壓后包含的內容比較豐富,不過不露結構很清晰,主要包含兩個子目錄:FreeRTOS和FreeRTOS-Plus。如下所示:
-  FreeRTOS-Plus?????????? 包含FreeRTOS+組件和演示例程; 
-  FreeRTOS????????????????? 包含FreeRTOS實時內核源文件和演示例程。 
?
我們學習的FreeRTOS內核部分在FreeRTOS目錄之下,打開FreeRTOS文件夾它又被分成兩個主要的子目錄,如下所示:
-  Demo????????? 包含演示例程工程; 
-  Source???????? 包含實時內核源文件。 
?
RTOS代碼的核心包含在三個文件中:tasks.c、queue.c、list.c。這三個文件位于FreeRTOS/Source目錄。在該目錄下還包含三個可選的文件:timers.c、event_groups.c、croutine.c,分別實現軟件定時、事件組和協程功能。
打開Source文件夾,FreeRTOS/Source目錄結構如下所示:
-  include??????? FreeRTOS內核代碼頭文件。 
-  portable????????????? 面向特定環境的接口描述。 
-  以及前面所述的6個文件。 
?
應用平臺的不同,所以每個支持的處理器架構都有一段與處理器架構相關的RTOS代碼。這個是RTOS移植層,它位于FreeRTOS/Source/Portable/[相應編譯器]/[相應CPU架構]子目錄。
對于FreeRTOS,堆棧設計也屬于移植層。FreeRTOS/Source/portable/MemMang目錄下heap_x.c文件給出了多種堆棧方案,后續文章將會詳細介紹堆棧操作。
如果FreeRTOS在IAR環境下移植到STM32F103平臺則為需要移植\FreeRTOS\Source\portable\IAR\ARM_CM3目錄下的文件,除此之外位于\FreeRTOS\Source\portable\MemMang目錄之下的堆棧設計文件也需要移植。其他部分則可忽略。
打開Demo文件夾,其中包含各種處理器架構和編譯器的演示例程。大多數的演示例程代碼對所有移植都是通用的,位于FreeRTOS/Demo/Common/Minimal目錄。Demo目錄下剩余的子目錄包含預先配置好的工程,可以用于構建個人演示例程。子目錄的命名與移植平臺和編譯器相關。如果我們查看在IAR環境下STM32F103平臺演示工程,則可以查看\FreeRTOS\Demo\CORTEX_STM32F103_IAR目錄。
3、開啟簡單的快樂之旅
有了以上的了解我們現在通過Demo簡單學習一下,在IAREWARM開發環境中打開\FreeRTOS\Demo\CORTEX_STM32F103_IAR目錄下的RTOSDemo.eww工程。
?
該項目打開后的文件組織形式如下:
?
編譯該工程,該Demo項目在IAR EWARMV6.4平臺下編譯無錯誤:
?
下載到STM32F103VET6目標MCU運行正確。至此,測試Demo項目正確。
歡迎關注:
總結
以上是生活随笔為你收集整理的FreeRTOS学习及移植笔记之一:开始FreeRTOS之旅的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: STM32基于SPI和AD7192的数据
- 下一篇: 安装qt5.9.5 windows环境
