freertos源码分析(1)--初始篇

 

代码下载地址:https://www.freertos.org/

部分转载参考

FreeRTOS基础知识:

RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。 在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。 RTOS操作系统:FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等。 RTOS操作系统的核心内容在于:实时内核。

 

可剥夺型内核:

 

RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。多任务管理给人的感觉就好像芯片有多个CPU,多任务管理实现了CPU资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时应用。

 

可剥夺内核顾名思义就是可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务。

 

https://images2015.cnblogs.com/blog/1100576/201705/1100576-20170518205756744-313403642.png

 

FreeRTOS是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制。FreeRTOS提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。 FreeRTOS是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的,FreeRTOS结构简洁,可读性很强!最主要的是非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。

 

FreeRTOS系统的优势

1. 协议栈代码完全开源,而且官网相关补充资料也完全免费。

2. FreeRTOS使用广泛,网上各种资料比较多。

3. 协议栈代码整体编码风格统一,逻辑比较清晰。

4. FreeRTOS现在属于Amazon,基本不用担心版本断档问题。

FreeRTOS 系统运行原理

 基于硬件适配层实现跨平台可移植

 基于任务驱动的方式运行整个系统

 基于优先级抢占的方式实现实时性

 基于任务队列的方式实现核心的任务调度

 基于队列、信号量方式实现任务之间的通信和同步

freertos源码分析(1)--初始篇_第1张图片

 

FreeRTOS代码结构:

FreeRTos文件夹包含系统实现kernel代码

FreeRtos-Plus包含kernel以外的系统常用功能组件。

List.c动态管理各种task实现任务调度;

Tasks.c任务本身的一些配置。

Queue.c消息队列用于task间通信和同步。

freertos源码分析(1)--初始篇_第2张图片

 

FreeRTOS-Plus-IO:提供不同硬件设备I/O引脚的通信接口

FreeRTOS-Plus-TCP:TCP/IP协议组件,对于需要使用IP通信的设备,这个组件非常重要

FreeRTOS-Plus-UDP
WolfSSL:用来对应用层协议添加认证加密组件。

freertos源码分析(1)--初始篇_第3张图片

 

IAR工具打开代码列表

使用FreeRTOSv10.2.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK为例

文件列表:

FreeRTOS_Source:freertos源代码。

ST_and_IAR_code:ST和IAR相关代码。

Main.c初始启动代码,任务操作。

freertos源码分析(1)--初始篇_第4张图片

 

 

你可能感兴趣的:(单片机)