最近在学嵌入式操作系统,我在正点原子精英版的上面做任务管理和处理,采用的是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)
|