Advertisement

FreeRTOS开发第四章的任务

阅读量:

一、什么是任务

在裸机系统架构中,系统的核心运行机制体现为 main 函数内部所包含的持续循环结构,该循环结构促使 CPU 按照预定顺序依次执行各类操作。而在多任务系统环境下,依据功能划分的原则,整个系统被拆解为多个彼此独立且不可逆的函数单元,此类函数单元通常被定义为任务。任务的基本实现形式及相关代码示例如下所示:

复制代码
    void task_entry (void *parg)
    {
    	/* 任务主体,无限循环且不能返回 */
    	for (;;)
    	{
    		/* 任务主体代码 */
    	}
    }
    
    
      
      
      
      
      
      
      
      
    

定义任务栈

让我们先回顾一下,在一个裸机系统中,若存在全局变量、子函数调用以及中断发生的情况,那么在系统运行过程中,全局变量会被存储在何处?当子函数被调用时,局部变量又会放置在哪个区域?当中断发生时,函数返回地址又会保存在哪里?如果只是进行单纯的裸机编程,我们无需关注这些问题。然而,当我们需要编写一个实时操作系统(RTOS)时,这些环境参数的存储方式就必须被明确掌握。在裸机系统中,这些数据通常都存储在一个被称为“栈”的区域中。栈是单片机RAM中一段连续的内

全部评论 (0)

还没有任何评论哟~