使用 Clion (cmake) 开发FreeRTOS

本文详细介绍了如何在STM32F407开发板上移植FreeRTOS操作系统,包括从STM32CubeMX建立项目、下载FreeRTOS源码、修改FreeRTOSConfig.h配置文件、调整cmake设置、处理中断服务例程冲突以及初始化main函数。通过这些步骤,实现了FreeRTOS在硬件浮点运算单元上的运行,并展示了如何创建和调度任务。
这里使用的是 f407
1. 先用STM32CubeMX 建立一个可以运行的stm32项目,toolchain选择 SW4STM32
2. 官网下载源码
www.freertos.org
我这里下载的是FreeRTOSv202112.00.zip 
解压缩后得到
需要以下几个文件夹或档案
FreeRTOS/Source下的所有的 .c 档案
FreeRTOS/Source/include
FreeRTOS/Source/portable/GCC/ARM_CM4F
FreeRTOS/Source/portable/MemMang里面的heap_4.c ( 可以参考 FreeRTOS基础二:堆内存管理之heap_4方案_哈士奇上蔚的博客-优快云博客)
3.. 将 FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK里的FreeRTOSConfig.h拷贝到 FreeRTOS/Source/include 下面
全部需要的档案如下
把FreeRTOS的文件夹放到项目的根目录
4. 修改 FreeRTOSConfig.h
将45行的
#ifdef __ICCARM__
#include <stdint.h>
extern uint32_t SystemCoreClock;
#endif
修改为
#if defined (__ICCARM__) || defined (__CC_ARM) || defined (__GNUC__)
#include <stdint.h>
extern uint32_t SystemCoreClock;
#endif
或是直接去掉 #ifdef __ICCARM__的判断
将51行的configUSE_IDLE_HOOK 改为0
将52行的configUSE_TICK_HOOK改为0
将64行的configCHECK_FOR_STACK_OVERFLOW改为0
将66行的configUSE_MALLOC_FAILED_HOOK改为0
5. 修改cmake
在cmake里启用硬件浮点运算单元 FPU
#Uncomment for hardware floating point
add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
cmake里添加include path
 FreeRTOS/Source/include
 FreeRTOS/Source/portable/GCC/ARM_CM4F
cmake里添加
file(GLO
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值