FreeROTS开发实战_FreeRTOS概述

 FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

 由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为V9.0.0

 

2 环境准备

2.1 下载代码

从FreeRTOS的官网www.freertos.org上下载,也可以在http://download.csdn.net/detail/zhzht19861011/9533821 csdn上面进行下载(这个是一个博主上传的,这里面要特别感谢,下面的很多文章分享也来自该博主)。

2.2 目录结构

下载包目录包含两个子目录:FreeRTOS和FreeRTOS-Plus。如下所示:

l  FreeRTOS-Plus 包含FreeRTOS+组件和演示例程;

l  FreeRTOS      包含FreeRTOS实时内核源文件和演示例程。

2.2.1 FreeRTOS目录

Source目录结构:

在source目录下面还包括6个C文件。

RTOS代码的核心包含在三个文件中:tasks.c、queue.c、list.c。

还包含三个可选的文件:timers.c、event_groups.c、croutine.c,分别实现软件定时、事件组和协程功能。

另外还有两个目录:include和portable

FreeROTS开发实战_FreeRTOS概述_第1张图片

每个支持的处理器架构需要一小段与处理器架构相关的RTOS代码。这个是RTOS移植层,它位于FreeRTOS/Source/Portable/[相应编译器]/[相应CPU架构]子目录。比如Cortex-M3微控制,使用Keil MDK编译器,所以需要的RTOS硬件接口代码位于:FreeRTOS\Source\portable\RVDS\ARM_CM3文件夹下。

对于FreeRTOS,堆栈设计也属于移植层。FreeRTOS/Source/portable/MemMang目录下heap_x.c文件给出了多种堆栈方案。

Demo目录结构

FreeROTS开发实战_FreeRTOS概述_第2张图片

FreeRTOS文件夹下的Demo文件夹中还包括各种演示例程,涉及多种架构的处理器以及多种编译器。

l  FreeRTOS/Demo/Common/Minimal文件夹下的演示例程代码中,绝大部分对所有移植硬件接口都是适用的。

l  FreeRTOS/Demo/Common/Full文件夹下的代码属于历史遗留代码,仅用于PC移植层。

2.2.1 FreeRTOS-plus目录

FreeRTOS-Plus包含FreeRTOS+组件和演示例程,有兴趣的同学自行研究。



你可能感兴趣的:(FreeRTOS,物联网,AIOT纵论)