嵌入式OS的栈
有过嵌入式程序设计的程序员都知道,在创建一个新的任务时都要为其传入一个栈空间和栈的大小(有时),那么这个栈到底是用来干什么的呢?本文将带你找到答案。
本文介绍的实验环境是Windows上移植的uCOSII,在VS.Net 2003中。
一、栈首要的任务就是,存储当前任务的寄存器状态以便在任务切换时恢复到切换前的状态。
这个功能是嵌入式的OS中栈的特有功能,其地址存放在任务的控制块TCB中。
二、存放函数调用及局部变量。
一个嵌入式系统中往往存在很多个任务,特定任务的栈只存放该任务调用的函数及局部变量,下面我们给出实验结果:
//
创建任务需要的栈空间
int TaskStk[10][2048];