FreeRTOS移植
阿新 • • 發佈:2018-04-01
runtime 下一個 config 開啟 ces 就是 方法 添加文件 map
1、FreeRTOS目錄結構
FreeRTOS
- |___Demo 對應各個芯片的示例程序
- |___License 相關許可信息
- |___Source 系統源代碼
- |___include 源碼頭文件
- |___portable 這個文件夾中的文件決定FreeRTOS的可移植性,移植時根據不同平臺選擇不同的文件
2、移植
- 建立工程後,添加相應的文件,然後編譯,出現如下錯誤:
.\Objects\freeRTOS_sCreate_task.axf: Error: L6200E: Symbol SVC_Handler multiply defined (by port.o and stm32f10x_it.o). .\Objects\freeRTOS_sCreate_task.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by port.o and stm32f10x_it.o). .\Objects\freeRTOS_sCreate_task.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by delay.o and stm32f10x_it.o).
- 解決方法:將stm32f10x_it.h中三個函數:SVC_Handler、PendSV_Handler、SysTick_Handler註釋掉即可;
- 然後在編譯,出現新的錯誤:
..\FreeRTOS\Source\include\FreeRTOS.h(98): error: #5: cannot open source input file "FreeRTOSConfig.h": No such file or directory #include "FreeRTOSConfig.h"
- 這是因為在 freeRTOS/include 中沒有FreeRTOSConfig.h這個文件,只需要從別的工程copy到include的目錄中即可;
3、FreeRTOSConfig.h 文件分析
- freeRTOSConfig.h這個文件為FreeRTOS系統的配置文件
#ifndef FREERTOS_CONFIG_H #define FREERTOS_CONFIG_H #include "sys.h" #include "usart.h" //針對不同的編譯器調用不同的stdint.h文件 #if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) #include <stdint.h> extern
FreeRTOS移植