标题: STM32F103ZET6移植FREERTOS操作系统源代码(借鉴于正点原子库函数) [打印本页]

作者: 金华千迹落竹    时间: 2020-11-27 17:45
标题: STM32F103ZET6移植FREERTOS操作系统源代码(借鉴于正点原子库函数)
最近在学嵌入式操作系统,我在正点原子精英版的上面做任务管理和处理,采用的是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,





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



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


然后又会出现俩个错误


我们去相应的文件里面去修改,




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


找到sys.c文件,然后找到sys.h文件,把这个宏定义改成1

然后我们接着修改,把这俩个的 includes.h都改成FREERTOS.h




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


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




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










我们最后这步添加一个延时函数。


现在我们的FREERTOS就可以用了




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

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

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


作者: d_xin    时间: 2023-9-6 09:59
讲解得很详细,学习了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1