2016-11-01

NuEdu-SDK-M451 (M453VG6AE) 開發板 FreeRTOS v9.0.0 移植建置

NuEdu-SDK-M451 (M453VG6AE) 開發板 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 專案中。
   路徑:
        M451_BSP301001\ThirdParty\FreeRTOS\Source 資料夾

4. 接著再把 FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK 資料夾底下的 FreeRTOSConfig.h
   也複製到 2000_FreeRTOS.uvproj 專案中。
   路徑:
        M451_BSP301001\SampleCode\2000_FreeRTOS 資料夾      

5. 在 2000_FreeRTOS.uvproj 專案中,將路徑
    FreeRTOS\Source\include
    FreeRTOS\Source\portable\RVDS\ARM_CM4F
    及
    FreeRTOS\Demo\Common\include
    加入 Compiler include Paths 中。

6. 將 FreeRTOS\Source\portable\MemMang 的 heap_2.c 加入 2000_FreeRTOS.uvproj 專案中。

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

8. 將 FreeRTOS\Source 資料夾底下的 4 個 *.c 檔案,加入 2000_FreeRTOS.uvproj 專案中。
    list.c
    queue.c
    tasks.c
    timers.c
   
9. 將 #include "M451Series.h" 標頭檔加入到 FreeRTOSConfig.h 文件中,並將

    // For CORTEX_M4F_STM32F407ZG-SK  
    #define configMINIMAL_STACK_SIZE        ( ( unsigned short ) 130 )
    #define configTOTAL_HEAP_SIZE           ( ( size_t ) ( 75 * 1024 ) )
   
    #define configCHECK_FOR_STACK_OVERFLOW  2
   
    改成
    // For Nuvoton NuEdu-SDK-M451 (M453VG6AE)
    #define configMINIMAL_STACK_SIZE        ( ( unsigned short ) 50 )
    #define configTOTAL_HEAP_SIZE           ( ( size_t ) ( 8 * 1024 ) )
   
    #define configCHECK_FOR_STACK_OVERFLOW  0
   
    並多加個
    #define configUSE_QUEUE_SETS            1  

    存檔後關閉。如圖。
   
10. 將 FreeRTOS\Demo\Common\Minimal\flash.c 文件的
    vStartLEDFlashTasks() 中,添加
   
    // PB.2 set to output mode
    PB->MODE = 0x00000010;
   
    以便對 BASIC01 LED1 (PB.2) 進行控制。如圖。

11. 將 M451_BSP301001\SampleCode\2000_FreeRTOS\ParTest.c 文件中,
    原本 PA.13 的相關指令均改為 PB.2。
   
    以便對 BASIC01 LED1 (PB.2) 進行控制。如圖。
   

沒有留言:

張貼留言