首先去FreeRTOS官網下載最新版的FreeRTOS實時操作系統的源碼,下載地址:https://www.freertos.org/a00104.html,下載完之后解壓,我這里的是FreeRTOS V10.2.1版本的內核,其它版本內核的移植是一樣的。
1、FreeRTOS實時操作系統移植步驟如下:
a、在工程目錄下新建一個文件夾,命名:FreeRTOS,然后在FreeRTOS文件夾中創建幾個文件夾:Core、Heap、include、Port
b、解壓下載的FreeRTOS內核源碼,然后找出我們需要的源碼文件,並拷貝到指定的目錄下。
aa、將FreeRTOSv10.2.1_191129\FreeRTOS\Source目錄下的 croutine.c、event_groups.c、list.c、queue.c、tasks.c、timers.c 文件拷貝到我們新建的Core文件夾中
bb、將FreeRTOSv10.2.1_191129\FreeRTOS\Source\include目錄下的 croutine.h、event_groups.h、list.h、queue.h、task.h、timers.h 文件拷貝到我們新建的Core文件夾中
cc、將FreeRTOSv10.2.1_191129\FreeRTOS\Source\portable\MemMang目錄下的 heap_1.c、heap_2.c、heap_3.c、heap_4.c、heap_5.c 文件拷貝到我們新建的Heap文件夾中
dd、將FreeRTOSv10.2.1_191129\FreeRTOS\Source\include目錄下的 deprecated_definitions.h、FreeRTOS.h、message_buffer.h、mpu_prototypes.h、mpu_wrappers.h、portable.h、projdefs.h、semphr.h、stack_macros.h、StackMacros.h、stream_buffer.h 文件拷貝到我們新建的include文件夾中
ee、將FreeRTOSv10.2.1_191129\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK目錄下的 FreeRTOSConfig.h 拷貝到我們新建的include文件夾中
ff、將FreeRTOSv10.2.1_191129\FreeRTOS\Source\portable\RVDS\ARM_CM4F目錄下的 port.c、portmacro.h 拷貝到我們新建的port文件夾中
gg、到這里為止FreeRTOS的內核源碼我們拷貝完成了,接下來就是創建工程移植內核了
c、新建STM32F407VET6工程結構如下:
編譯之后,在stm32f4xx_it.c文件中注釋掉三個函數,分別為:void SVC_Handler(void)、void PendSV_Handler(void)、void SysTick_Handler(void)。
d、添加FreeRTOS內核源碼到工程中去然后編譯
至此FreeRTOS移植完畢。