找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3649|回复: 1
收起左侧

STM32F103ZET6移植FREERTOS操作系统源代码(借鉴于正点原子库函数)

[复制链接]
ID:692965 发表于 2020-11-27 17:45 | 显示全部楼层 |阅读模式
最近在学嵌入式操作系统,我在正点原子精英版的上面做任务管理和处理,采用的是FREERTOS操作系统,而关于FREERTOS操作系统有很多介绍。第一步  FREERTOS简介
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运。
第二步 准备工作
FREERTOS系统 ,一个工程,越简单越好,这里我就用的库函数版本的LED工程,在LED文件里创建FREERTOS文件夹来放FREERTOS源代码,然后就是 portable文件夹里面只剩下这三个文件,keli、MemMang、RVDS, 51hei截图20201127174831.png

FREERTTOS文件夹.png

portable.png

这些弄好之后,打开工程添加文件夹FREERTOS_CODE和FREERTOS_PORTABLE俩个文件夹,这是我添加的以后的(这里我们的用的ARM3的内核所以选用ARM3),还有对应的.h的头文件也要添加进去,
端口.png
头文件.png

然后编译会出现错误,这是因为缺少了一个头文件FreeRTOSConfig.h,我们从别的demo复制一个过来,然后放在include文件夹里面,再进行编译
错误.png

然后又会出现俩个错误
2个错误.png

我们去相应的文件里面去修改,
错误1.png

错误2.png

然后编译就没有错误了,因为我们用的是正点原子的代码,所以我们要开启FREETRTOS的系统的时钟,虽然没有错误,但是FREERTOS还是不能用
完成.png

找到sys.c文件,然后找到sys.h文件,把这个宏定义改成1
请用.png
然后我们接着修改,把这俩个的 includes.h都改成FREERTOS.h
修改1.png

修改2.png

然后编译,会报错误,因为重复的定义了,
错误11.png

我们点击对应的错误,就能到错误的地方,要是 找不到就找对应的.c文件
错误1.png

错误2.png

然后编译又会出现错误,我们接着修改delay.c文件
delay.png

修改10.png

修改11.png

修改12.png

修改13.png

我们最后这步添加一个延时函数。
修改14.png

现在我们的FREERTOS就可以用了
主函数.png

主函数1.png

这个代码是我们测试用的,以后会讲到,所以可以先从别处复制先来,测试一下自己是否移植成功。

以下的是代码和我自己一直好的文件,哪个地方写的不好,请大家见谅!!

全部资料51hei下载地址:
相关文件.7z (10.53 MB, 下载次数: 82)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:286558 发表于 2023-9-6 09:59 | 显示全部楼层
讲解得很详细,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表