stm32的FreeRTOS移植

本文详细介绍了如何将FreeRTOS操作系统移植到STM32F103,包括从官网下载源码、在IAR和MDK环境下进行移植的步骤,以及移植过程中的注意事项。通过实例展示了配置FreeRTOSConfig.h文件、添加头文件路径、修改中断服务函数等关键步骤,并提供了软件版本和参考资料。
摘要由CSDN通过智能技术生成

目录

FreeRTOS移植到STM32F103步骤与注意事项

前言:

一、从官网下载最新版的FreeRTOS源码

二、IAR下移植FreeRTOS

三、MDK下移植FreeRTOS

总结:

STM32CubeMX中的FreeRTOS的设置之内核参数

摘要

参考文献

软件版本

内核参数

FreeRTOS源码分析  序列:


FreeRTOS移植到STM32F103步骤与注意事项

(转自:https://blog.csdn.net/zhangmh2011/article/details/72801238 作者:zhang_m_h2008)

原文地址:http://www.openedv.com/thread-77593-1-1.html

前言:

由于之前听过太多人抱怨移植FreeRTOS到STM32有各种各样的问题,小灯经过一年多对FreeRTOS的研究并在公司产品中应用,多少有些心得,接下来就由小灯以最新版的FreeRTOS为例一步一步移植到STM32F103上,并提醒大家某些需要注意的事项。本文档为非正式技术文档,故排版会有些凌乱,希望大家能提供宝贵意见以供小灯参考改进。
下面先以IAR移植为例,说明移植过程中的诸多注意事项,最后再以MDK移植时不再重复说明,所以还是建议大家先花些时间看IAR的移植过程,哪怕你不使用IAR,最好也注意下那一大堆注意事项!
 

一、从官网下载最新版的FreeRTOS源码

下面的网址是官方最新源码的下载地址:

https://sourceforge.net/projects/freertos/files/latest/download?source=files

目前官方提供的最新版本是v9.0.0, FreeRTOS源码在解压目录下的路径为
FreeRTOS_V9.0.0rc2\FreeRTOS\Source


FreeRTOS组织为了抢用户也是拼了命的,不信你打开Demo文件夹看看,里面提供了FreeRTOS在各种单片机上已经移植好的工程,如果建工程时遇到什么问题,可以参考下这些Demo。
不过小灯现在着重于自己动手移植FreeRTOS,考虑到原子哥@正点原子的用户比较多,绝大多数习惯了使用MDK来开发STM32,因此小灯分别以IAR和MDK两种使用比较广泛的开发环境来移植FreeRTOS。说到IAR和MDK,不得不提的是小灯自从用了IAR之后就果断放弃了MDK,相信很多人有这个经历,哈哈!

在开始移植FreeRTOS之前,先介绍下FreeRTOS的源码:
 
FreeRTOS的源码比较少,源文件也远没有UCOS多,不过麻雀虽小五脏俱全,FreeRTOS的短小精悍也是最令小灯着迷的,虽然缺少了很多组成部分,例如GUI、网络协议栈、文件系统等,不过这些统统都不是问题,因为完全可以移植第三方的组件!
一不小心牛逼又吹大了,哈哈!回归正题,FreeRTOS的源码核心部分是tasks.c和list.c,其余的几个文件功能都是可选的,例如软件定时器、队列、协程等等,小灯就不介绍了,有兴趣的话可以到官网上看介绍。include文件夹里面的文件是操作系统相关的头文件,而portable这个文件夹有些奇葩,先看看里面有啥:
 
这里的文件几乎都是与平台相关的,如果你要删掉这里的文件时就必须小心了,因为不是所有文件都能删除的。
注意文件夹MemMang,里面存放的是FreeRTOS自带的内存管理方案的源文件:
 
关于内存管理方案的选择,小灯以后再跟大家讨论,现在只需要知道这些文件不能删就好。

接下来看看IAR文件夹的内容,里面都是跟单片机底层相关的,由于我们以STM32F103为例,因此只需要保留ARM_CM3文件夹即可,其余可选择性删除。ARM_CM3文件夹里只有几个文件,这几个文件是操作系统最最底层的部分:
 

接下来再看看Keil文件夹的内容,里面只有一个文件,文件提示See-also-the-RVDS-directory,意思是让我们参照RVDS目录下的文件。其实我们以MDK建工程时,就是拿RVDS目录下的文件来替代的,因此我们应该把RVDS目录下的文件拷贝到Keil目录下,跟上面IAR文件夹一样我们只拷贝ARM_CM3文件夹即可:
 

到这里我们可以把其他无用的文件统统删掉了,portable目录下只保留下面几个文件夹的文件即可:
 
现在已经把源码整理好了,接下来就开始移植工作吧!

 

二、IAR下移植FreeRTOS

事先说明下,小灯使用的IAR版本是
 
关于IAR下如何创建STM32基础工程,小灯就偷下懒不介绍了,这入门级的知识还是交给卖开发板的人来传播吧,小灯就以自己平常用的简单工程为例:
 
工程当中只有一个LED.c是小灯额外添加的,小灯一直停留在跑灯的水平,习惯用LED来观察现象,希望各位大神莫怪。工程源码结构如下:
 
其中FreeRTOS文件夹下就是FreeRTOS的源码:

您好!感谢您的提问。要将 FreeRTOS 移植STM32 上,可以按照以下步骤进行操作: 1. 配置 STM32 开发环境:安装 STM32CubeMX 和相关的开发工具,如 Keil 或者 STM32CubeIDE。 2. 创建一个新的 STM32 项目:使用 STM32CubeMX 创建一个新的项目,选择您的目标 MCU 型号,并配置相应的外设和时钟设置。 3. 生成代码:根据您的配置,生成初始化代码和 FreeRTOS 的配置文件。 4. 添加 FreeRTOS 文件:将 FreeRTOS 的源码添加到您的项目中。可以从官方网站下载最新版本的 FreeRTOS,并将其添加到您的项目文件夹中。 5. 配置 FreeRTOS:修改 FreeRTOSConfig.h 文件,根据您的需求配置任务堆栈大小、任务优先级等参数。 6. 配置中断:根据您的应用需求,配置合适的中断优先级,并且确保 FreeRTOS 的 tick 中断优先级较低。 7. 编写任务代码:根据您的应用需求,编写任务代码并创建任务。可以使用 FreeRTOS 提供的 API 函数来创建、删除和管理任务。 8. 编译和调试:编译您的项目并下载到 STM32 开发板上进行调试。确保任务能够正确运行并按照预期进行调度。 这些是大致的步骤,具体的移植细节可能会根据您的项目需求和 STM32 型号而有所不同。建议您参考相关的 FreeRTOS 文档和 STM32 的用户手册以获得更详细的信息和指导。希望对您有所帮助!如有任何问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值