FreeRTOS实时操作系统移植过程

大家好哇!我是湫湫,

本次文章主要想记录一下FreeRTOS的移植过程

非常感谢大家的阅读,如果有不对的地方欢迎指正。


一、FreeRTOS简介

       RTOS(Real Time Operation System实时操作系统),常用的RTOS国外有RTX,FreeRTOS和国内的RT-Thread,Huawei LiteOS等。 FreeRTOS 是一款 “开源免费”的实时操作系统,遵循的是 GPLv2+的许可协议。

       提出实时操作系统的概念,可以至少解决两个问题:一个是早期的CPU任务切换的开销太大,实时调度器可以避免任务频繁切换导致CPU时间的浪费;另一个是在一些特殊的应用场景中,必须要保证重要的任务优先被执行。

     简单来说就是可以一心多用。

二、移植过程

在官网获取相关资料:

https://www.freertos.org/

版本下载,我下的是v9版本,与最新的相比,内核没有变化,不同在内核相关的主键,相比v9比较稳定。

软件托管网址为:https://sourceforge.net/projects/freertos/files/FreeRTOS

资料下载完减压后如下图所示:

FreeRTOS 包含 Demo 例程和内核源码(比较重要,我们就需要提取该目录下的大部分文件)

FreeRTOS 文件夹下的 Source 文件夹里面包含的是 FreeRTOS内核的源代码,我们移植 FreeRTOS 的时候就需要这部分源代码。

FreeRTOSConfig.h 这个头文件就是从这里拷贝过来的,我们这里不做详解。

三、往裸机工程添加 FreeRTOS 源码

1. 首先在STM32 裸 机工程模板根目录下新建一个文件夹,命名 为 “FreeRTOS”,FreeRTOS 文件夹下新建三个空文件夹,分别命名为“src” 、“inc”、“port”,也就是我们常说的 “.c ”文件“.h”文件port 文件夹用于保存内存管理以及处理器架构相关代码,FreeRTOS 是软件,我们的开发版是硬件,软硬件必须有桥梁来连接,这些与处理器架构相 关的代码,可以称之为 RTOS 硬件接口层,它们位于 FreeRTOS/Source/Portable 文件夹下。

2. 打开 FreeRTOS V9.0.0 源码,在“FreeRTOSv9.0.0\FreeRTOS\Source”目录下找到 所有的‘.c 文件’,将它们拷贝到我们新建的 src 文件夹中。

3.在“FreeRTOSv9.0.0\FreeRTOS\Source\portable”目 录下找到“MemMang”文件夹与“RVDS”文件夹,将它们拷贝到我们新建的 "portable"文件夹中。

:如若,嫌内存不够的话,可只复制自己所需要的内核,如像我选用了STM32F103C8T6就只复制了CM3的。

把如下图所示的两个文件拷贝到“port”中。

然后返回到“portable”目录下,打开内存管理文件夹“MemMang”,推荐移植的是“heap_4.c”

4.返回到“FreeRTOS”目录下,可以看到Demo文件,找到自己所需要的文件内容。如我用STM32F103_keil,直接复制相关内容到自己所建的项目文件夹内。

5.添加 FreeRTOS 源码到工程组文件夹,打开下图中红圈中圈出来的三个不同颜色组成的小堆,再建立三个文件,添加对应的.h.c此文件。对应添加文件为如下图所示。

6.指定 FreeRTOS 头文件的路径

总结

FreeRTOS移植过程就差不多了,后期还要根据所移植的修改,添加自己的代码,在这里我就不过多介绍了,如若想要更深入了解,可参考如下链接。

哔哩哔哩:

http://【FreeRTOS实时操作系统--基于STM32】https://www.bilibili.com/video/BV1GN4y157fy?p=99&vd_source=da3da0dcb5ab591a9c87b509525f32a1

http://【STM32移植FreeRTOS】https://www.bilibili.com/video/BV1394y1h7ho?vd_source=da3da0dcb5ab591a9c87b509525f32a1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值