最新版FreeRTOS的移植------STM32F103c8t6

系列文章目录

用FlyMcu和USB转TTL给stm32中烧录程序(stm32C8/C6)



前言

在嵌入式系统开发中,实时操作系统(RTOS)的使用已经成为提高系统性能和效率的重要工具。而FreeRTOS作为一款广泛应用的开源RTOS,为开发者提供了强大的多任务处理和资源管理能力。STM32F103C8T6,作为STM32系列中的一员,以其强大的性能和丰富的外设以及低廉的价格而备受初学者青睐。本篇博客通过将FreeRTOS与STM32F103C8T6相结合,能够实现更高效、更稳定的任务调度和系统管理,为项目带来全新的可能性。

在本文中,我们将一步步引导您完成这一移植过程。将从获取FreeRTOS源码开始,深入了解如何适配STM32F103C8T6的硬件和时钟配置,以及如何创建和管理FreeRTOS任务。我们将特别关注一些常见问题和注意事项,确保您在移植过程中能够顺利解决可能出现的挑战。


一、先决条件:

1.keil开发环境
2.stm32f103c8t6开发板
3.下载器(stlink或者使用文件开头提到的flymcu搭配usb-ttl下载程序)

二、使用步骤

1.获取FreeRTOS源码:

从官方网站freeRTOS下载最新版本的FreeRTOS源码。
在这里插入图片描述
选择带有example例程的下载

2.将freeRTOS相关文件移植进keil工程:

1.将官网下载的压缩包进行解压

在这里插入图片描述

2.在需要移植的keil工程下创建一个FreeRTOS文件夹

在这里插入图片描述

3.创建一个子文件夹port

a 在FreeRTOS目录下并将源码中的MemMang粘贴进该文件夹中。(内存管理相关的代码)

在这里插入图片描述

b 在FreeRTOS目录下并将源码中的port粘贴进该文件夹中。

4.将FreeRTOS源码中include整个文件夹复制到FreeRTOS中

在这里插入图片描述

5.创建一个src文件夹在FreeRTOS目录下,将以下文件加入该文件夹

在这里插入图片描述

6.从源码DEMO的cotex-m3文件夹中粘贴一个FreeRTOSconfig.h放进FreeRTOS中。

在这里插入图片描述

3.修改相关文件内容,使得FreeRTOS可以正常运行在c8t6上:

1.修改config,h相关内容(具体解释会在后面讲述)

在这里插入图片描述

2.修改stm32f10x_it.c,注释下面三个函数,并加上最上面三行代码
在这里插入图片描述

在这里插入图片描述

3.创建一个简单的点灯程序(万物皆可点灯)

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

总结

注意!!!如果发现程序卡死在SVC中断中,请及时查看stm32f10xit.c和FreeRTOSconfig.h里面是否添加了以下三行代码:

#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler  

以上就是今天要讲的内容,移植过程中如果遇到什么问题欢迎在评论区留言。

  • 5
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于FreeRTOS操作系统的stm32F103C8T6项目可以实现多任务并发运行。FreeRTOS是一个小巧、可裁剪的RTOS系统,具有以下特点: 1. 内核支持抢占式、合作式和时间片调度,可以根据任务的优先级来决定下一刻应该运行哪个任务。 2. 提供了一个用于低功耗的Tickless模式,可以有效节省能源。 3. 支持动态或静态RAM,可以根据需要选择创建任务、消息队列、信号量、软件定时器等组件时使用的内存类型。 4. 已经在超过30种架构的芯片上进行了移植,包括stm32F103系列。 5. FreeRTOS系统简单、小巧、易用,通常情况下内核占用4k-9k字节的空间。 6. 支持实时任务和协程,任务与任务、任务与中断之间可以使用任务通知、消息队列、信号量等进行通信和同步。 7. 具有优先级继承特性的互斥信号量,高效的软件定时器,强大的跟踪执行功能和堆栈溢出检测功能。 8. 任务数量和优先级没有限制,可以根据项目需求创建任意数量和优先级的任务。 因此,基于FreeRTOS操作系统的stm32F103C8T6项目可以充分利用该RTOS系统的特点,实现多任务并发运行,提高系统的实时性和可靠性。 #### 引用[.reference_title] - *1* [stm32F103C8T6基于FreeRTOS操作系统的多任务(STM32CUBEMX)](https://blog.csdn.net/Mouer__/article/details/121616118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [stm32F103C8T6基于FreeRTOS操作系统的多任务](https://blog.csdn.net/weixin_46129506/article/details/121659483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值