一,嵌入式实时操作系统
按对外部事件的响应能力来分类,嵌入式操作系统有分时操作系统和实时操作系统。如果操作系统能使计算机系统及时的响应外部事件请求,并能控制所有实时设备和实时任务协调运行,且能在一个规定的时间内完成对事件的处理,那么这种系统就称为实时操作系统(RTOS)。 按时间的正确程度来分,实时操作系统又分为硬件的实时操作系统和软件的实时操作系统。系统必须在极其严格的时间内完成的任务叫做硬件的实时操作系统,如果不是很严格的话就是软件的实时操作系统。 分时操作系统就是按时间片轮转完成各个任务。
二,FreeRTOS特点
以上是官方截图,总结一些就是开源免费,商业使用的话不需要用户公开源代码,也不存在任何版权问题,是当前小型嵌入式操作系统市场使用率最高的。下面是2017年最新的嵌入式市场调查报告:
三,移植过程
1,在官方网页下载源代码:下载完成之后是一个.exe文件,双击就可以解压完成。
2,解压完成之后:我们将freeRTOS中Source源代码copy到工程模板的rtos文件夹:
3,在MDK中建立rtos/source,rtos/port 一个是FreeRTOS源代码,负责系统的运行,Port是软件与硬件的接口。
Source代码只需要在rtos文件夹下添加就可以了,port需要根据不同的平台(M3,M4,M7,A8)选择不同的文件,由于RT1052芯片是M7内核的,所以我们选择RVDS下的ARM_CM7下的文件,还有MemMang下的内存管理文件,这里选择heap_4.c这个文件,如果你对这五种内存分配方案的有什么不同点的话,可以点击下面的readme这个网页查看不同点,这里贴一下我在freertos官网看到的关于内存的信息:
4,在MDK中添加文件夹路径:
5,编译,可以发现还会有一个错误:..\rtos\include\FreeRTOS.h(56): error: #5: cannot open source input file "FreeRTOSConfig.h": No such file or directory
这是关于FREERTOS的配置文件,这里我们可以使用正点原子的配置,其实都是相差无几的,但是他的注释比较好,这里贴一下代码:
你可以在rtos文件夹新建一个FreeRTOSConfig.h文件,将上面的代码直接copy进入。
四,这时基本上就已经移植完成了,我们在main.c中将
- #include "FreeRTOS.h"
- #include "task.h"
复制代码 添加进入。根据Free RTOS的API指南新建四个任务,名字随便命名,具体可以看一下的我的模板。
Project_FreeRTOS_Tem.zip
(2.98 MB, 下载次数: 43)
|