其他内容可以关注目录, FreeRTOS使用与内部机制(引言)-CSDN博客。
----------------------------------------------------------------------------------------------------------------------------
在说多任务之前,我想说一下在本文中我们将任务简单理解为函数。
多任务可以简单理解为多个函数几乎在同时运行。
比如我们现在有两个任务:
void task1(void) {
int a = 0;
while(1) {
a++;
}
}
void task2(void) {
int a = 0;
while(1) {
a--;
}
}
简单的说,RTOS能让这两个任务几乎同时运行。
没接触过和操作系统相关的人可以满脑子疑惑了。
两个任务,两个死循环。
这两玩意能同时运行???
我读书少,别骗我。
然而事实是两个任务确实能同时运行,我先卖个关子,毕竟对于大部分还没接受过操作系统小可爱,来这么一下不久跑光光了。
我们先简单看一下代码实现,来证明我说的是真的吧。
void task1(void *param) {
int a = 0;
while(1) {
a++;
}
}
void task2(void *param) {
int a = 0;
while(1) {
a--;
}
}
int main(void) {
xTaskCreate(task1, "task1", 128 * 4, NULL, osPriorityNormal, NULL);
xTaskCreate(task2, "task2", 128 * 4, NULL, osPriorityNormal, NULL);
vTaskStartScheduler();
}
没错就是这么简简单单的, 对于很多小可爱也许是个福星,因为前戏铺垫真的很简洁, 也就加上了xTaskCreate()和vTaskStartScheduler() 这两个函数,就能让这两个任务几乎可以同时运行。而且我可以预告接下来几章我们将围绕这两个函数做深入探讨,别害怕,我会尽量用通俗易懂的语言讲解,请相信我。