手动移植FreeRTOS与CubeMX配置

目录

官方下载FreeRTOS的源码

准备基础工程

将FreeRTOS源码添加进工程

使用STM32CubeMX来移植FreeRTOS 


官方下载FreeRTOS的源码

官方网址https://www.freertos.org  进入官网点击下载FreeRTOS

准备基础工程

首先我们需要准备一个基础的工程项目,其中需要注意的是要将延时时钟基准由SysTick换成TIM,因为FreeRTOS会使用SysTick作为时钟基准

将FreeRTOS源码添加进工程

新建文件夹,将下载好的源码复制到工程中,同时删除portable与RVDS文件夹中多余的文件,注意好我打开源码的路径,将里面这些东西复制到自己工程中新建的文件夹里

复制好之后我们需要整理一下不用的文件,打开portable,保留我选中的三个文件,如果用IAR就删除keil,MemMang是关于内存的一些文件,RVDS则是关于我们单片机架构的一些文件,我这里用的是STM32F103ZET6,则将RVDS中除了这款单片机的其他架构全部删除,只保留ARM-M3内核,只删文件夹啊,不是文件夹的不要删

然后我们进入工程,在工程中新建两个Group,一个用来储存RTOS源码,一个用来存放关于端口的文件,源码我们除了两个文件夹以外全部添加进去

端口的则是分两部分,把我们的单片机内核文件先添加进来,再选择一个内存添加

最后不要忘记添加一下路径

编译一下发现有九个错误,错误的原因是打不开FreeRTOSConfig.h头文件,在FreeRTOS源码中打开Demo,根据路径找到这个头文件,复制粘贴进去我们自己用于储存模块化代码的文件夹中就行

最后我们在FreeRTOSConfig.h头文件中添加一下我们需要用到而系统没有的宏定义

#define xPortPendSVHandler PendSV_Handle
#define xPortSysTickHandler SysTick_Handle
#define xPortSVCHandler SVC_Handler

只有这样RTOS才能和我们的STM32单片机的中断系统联系起来

我们为什么要手动移植呢,方便移植到其他单片机上

使用STM32CubeMX来移植FreeRTOS 

左侧选择Middleware选项卡,选中FreeRTOS然后Interface选择CMSIS_V1配置参数默认即可

Disable - 禁用FreeRTOS

CMSIS_V1 - CMSIS_RTOS的版本为V1.02 一般选择这个

CMSIS_V2 - CMSIS_RTOS的版本为V2.0 兼容更多架构,但是代码量会变大

别忘记把基准时钟换成TIM

然后我们在CubeMX中添加任务 选择Task and Queues选择默认任务,然后调整任务,注意任务名称和任务函数的名称不可以相同,点击OK就创建了一个任务了

最后生成工程保存编译一下就可以使用了

  • 38
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值