The SDK provides a set of FreeRTOS OS-related applications. The examples are written to demonstrate basic FreeRTOS features and the interaction between peripheral drivers and the RTOS. The FreeRTOS OS in SDK is provided in the form of source files directly linked to the projects.
上面这段话介绍了 SDK 和 FreeRTOS 的关系,SDK 是软件工具开发包,可以用来开发裸机程序 .bin 文件,对于依赖 FreeRTOS 的应用提供支持,可以提供 FreeRTOS 的一些基本特性,并能够与外围设备进行交互。
前后台系统
早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。通常把程序分为两部分:前台系统和后台系统。
RTOS系统
RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。
在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
RTOS操作系统:FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等。
RTOS操作系统的核心内容在于:实时内核。
可剥夺型内核
可剥夺内核顾名思义就是可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务。
FreeRTOS 任务特性:
注:
在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,比如函数中的变量等。我进程A使用全局变量x,还没有使用完x的结果,就调用了进程B,那么我进程B如果也使用了全局变量x,那么就会导致x最后结果不确定。从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。
FreeRTOS任务状态: