FreeRTOS开发第四章的任务
发布时间
阅读量:
阅读量
一、什么是任务
在裸机系统架构中,系统的核心运行机制体现为 main 函数内部所包含的持续循环结构,该循环结构促使 CPU 按照预定顺序依次执行各类操作。而在多任务系统环境下,依据功能划分的原则,整个系统被拆解为多个彼此独立且不可逆的函数单元,此类函数单元通常被定义为任务。任务的基本实现形式及相关代码示例如下所示:
void task_entry (void *parg)
{
/* 任务主体,无限循环且不能返回 */
for (;;)
{
/* 任务主体代码 */
}
}
定义任务栈
让我们先回顾一下,在一个裸机系统中,若存在全局变量、子函数调用以及中断发生的情况,那么在系统运行过程中,全局变量会被存储在何处?当子函数被调用时,局部变量又会放置在哪个区域?当中断发生时,函数返回地址又会保存在哪里?如果只是进行单纯的裸机编程,我们无需关注这些问题。然而,当我们需要编写一个实时操作系统(RTOS)时,这些环境参数的存储方式就必须被明确掌握。在裸机系统中,这些数据通常都存储在一个被称为“栈”的区域中。栈是单片机RAM中一段连续的内
全部评论 (0)
还没有任何评论哟~
