FreeRTOS学习笔记

1.FreeRTOS是什么?

    FreeRTOS是一种实时操作系统。初学嵌入式开发的人没有给自己的程序加个操作的习惯,总是在主程序中加入死循环和中断使程序按照理想运行,这样的工作叫做操作裸机(裸奔),而没有操作系统的51、STM32、430等单片机叫做裸机。

    FreeRTOS只是其中一种操作系统,其他还有很多种操作系统如uC/OS-Ⅱ、Ubuntu、Android等。而FreeRTOS是一种小型的,便于移植的实时操作系统。

2.使用FreeRTOS操作系统和使用裸机有什么区别?

    使用裸机时,程序都在一个死循环中反复线性地执行,中断能够实时地处理一些突发事件和周期事件。第一,没有很高的实时性。比如说:死循环中有5个函数线性地执行,运行到第5个函数时,你想让他运行第4个,此时则需要再执行一遍函数1、2、3才能执行第4个函数,影响了实时性。也许3个函数的延时很短,人无法去感受,但当程序复杂起来时,函数数量有几百、几千时,这个延时就很明显了。这时候你会想到用中断,但是中断用起来会使程序复杂,而且只是比正常执行的程序高一个优先级而已,如果你有想要更高优先级的函数要执行,此时最好的选择是FreeRTOS。

3.如何形象地理解FreeRTOS

    笔者在学习FreeRTOS时将其当作一个更实用、更方便的中断。因为它可以有好几个优先级,以此将任务分类执行,优先级高的先执行,优先级低的后执行。你可以把它当作一个更方便的中断。你可以把最先要处理的比较紧急的任务的优先级设置的比一般任务高,可以把一些需要一直执行但不必须的任务的优先级设置地低(比如读取传感器数据等)。当一些突发事件和周期事件得到解决时,继续执行优先级低的基本事件。


STM32F2 Keil工程下载地址:https://download.csdn.net/download/at91rm9200/7172217

这个压缩包中含有FreeRTOS的测试例程和FreeRTOS的中文教程(函数手册),能够帮助你细致了解学习。

例程中通过两个灯的亮灭来区别任务的执行。

猜你喜欢

转载自blog.csdn.net/qq_26664187/article/details/80775050