2016-10-29

STM32F429I-DISCO 開發板的 FreeRTOS v9.0.0 移植建置

STM32F429I-DISCO 開發板的 FreeRTOS v9.0.0 移植建置

移植建置步驟如下:

1. 先到 FreeRTOS 官方網頁下載 FreeRTOS 的 7z 執行包,目前最新版為 9.0.0 版。
 
   官方網頁:http://www.freertos.org/
   
2. 下載完成並解壓縮後,得到一個 FreeRTOSv9.0.0 資料夾。
3. 再將把路徑 FreeRTOSv9.0.0\FreeRTOS\Source 資料夾,複製到 Keil MDK-ARM 專案中。
   路徑:
        STM32F429I-Discovery_FW_V1.0.1\Utilities\Third_Party\FreeRTOS\Source 資料夾

4. 接著再把 FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK 資料夾底下的 FreeRTOSConfig.h
   也複製到 2001_FreeRTOS_TEST.uvproj 專案中。
   路徑:
        STM32F429I-Discovery_FW_V1.0.1\Projects\2001_FreeRTOS_TEST\USER 資料夾    

5. 在 2001_FreeRTOS_TEST.uvproj 專案中,將路徑
FreeRTOS\Source\include

FreeRTOS\Source\portable\RVDS\ARM_CM4F
加入 Compiler include Paths 中。

6. 將 FreeRTOS\Source\portable\MemMang 的 heap_1.c 加入 2001_FreeRTOS_TEST.uvproj 專案中。

2016-10-31 參考 安富萊 (ARMFLY) STM32-V6 開發板教程第54頁,將 heap_1.c 改為 heap_4.c。其差別如下:
  •  heap_1 - the very simplest, does not permit memory to be freed 
  •  heap_4 - coalescences adjacent free blocks to avoid fragmentation. Includes absolute address placement option 

7. 將 FreeRTOS\Source\portable\RVDS\ARM_CM4F 的 port.c 加入 2001_FreeRTOS_TEST.uvproj 專案中。

8. 將 FreeRTOS\Source 資料夾底下的 6 個 *.c 檔案,全部加入 2001_FreeRTOS_TEST.uvproj 專案中。
    croutine.c
    event_groups.c
    list.c
    queue.c
    tasks.c
    timers.c
 
9. 將 #include "stm32f4xx.h" 標頭檔加入到 FreeRTOSConfig.h 文件中,並將 
    #define configCHECK_FOR_STACK_OVERFLOW  2 
    改成 
    #define configCHECK_FOR_STACK_OVERFLOW  0 
    存檔後關閉。如圖。 
10. 將 #include "stm32f4xx.h" 標頭檔加入到 port.c 文件中。如圖。 

參考資料:
    STM32F4 入門教學:FreeRTOS 移植 

    

沒有留言:

張貼留言