移植FreeRTOS到STM32程序中(超详细)

系列文章目录



前言

在大三时,学了一段时间Freertos,当时没养成好习惯,没有写成文章当成笔记发到CSDN上,也不至于换电脑时,删掉了很多资料笔记。再加上工作中没用到Freertos,直接跑的裸机,我想再不整理下,就废了。长时间不用,真的会忘记呀!开发板是STM32F103


一、移植过程

在这里插入图片描述
打开下载的源码库,有这些文件夹
在这里插入图片描述
在自己的程序文件夹Freertos里创建文件夹
在这里插入图片描述
这个是官方源码库文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、修改添加部分程序

在这里插入图片描述
添加一些定义
在这里插入图片描述
下面这部分程序就是添加的内容

#define configUSE_TIME_SLICING 1 		//使能时间片调度(默认式使能的)
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 //硬件计算前导零指令,如果所使用的, MCU 没有这些硬件指令的话此宏应该设置为 0
#define configUSE_TICKLESS_IDLE 0 //置 1:使能低功耗 tickless 模式;置 0:保持系统节拍(tick)中断一直运行
#define configUSE_QUEUE_SETS 1 //启用队列
#define configUSE_TASK_NOTIFICATIONS 1 //开启任务通知功能,默认开启
#define configUSE_MUTEXES 1 //使用互斥信号量
#define configUSE_RECURSIVE_MUTEXES 1 //使用递归互斥信号量
#define configUSE_COUNTING_SEMAPHORES 1 //为 1 时使用计数信号量
#define configQUEUE_REGISTRY_SIZE 10 //设置可以注册的信号量和消息队列个数
#define configUSE_APPLICATION_TASK_TAG 0
#define configSUPPORT_DYNAMIC_ALLOCATION 1 //支持动态内存申请
#define configUSE_MALLOC_FAILED_HOOK 0 //使用内存申请失败钩子函数
// 大于 0 时启用堆栈溢出检测功能,如果使用此功能用户必须提供一个栈溢出钩子函数如果使用的话此值可以为 1 或者 2,因为有两种栈溢出检测方法
#define configCHECK_FOR_STACK_OVERFLOW 1
#define configGENERATE_RUN_TIME_STATS 0 //启用运行时间统计功能
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
#define configUSE_TIMERS 1 //启用软件定时器
#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES-1) //软件定时器优先级
#define configTIMER_QUEUE_LENGTH 10 //软件定时器队列长度
#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE*2) //软件定时器任务堆栈大小可选函数配置选项
#define INCLUDE_xTaskGetSchedulerState 1	
#define INCLUDE_eTaskGetState 1
#define INCLUDE_xTimerPendFunctionCall 1
//中断服务函数 也可以修改起始文件
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler

修改部分内容
在这里插入图片描述
到此为止,编译一下。会出现三个错误。
在这里插入图片描述

三、修改错误

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

移植FreeRTOS

我也想加个声音呢!电脑声卡驱动坏了,凑合看吧!

总结

大部分文字都在图片上标注好了,如果你正在学FreeRTOS,你可以向我要移植好的程序,或者官方的源代码,自己可以移植一遍玩玩!当然为什么这么移植?想要搞明白原理的,就去看看野火移植的文档(介绍的很详细),我有点懒,不想再去找,文字太多,看着都烦死了。

  • 12
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值