1 μC/OS-II的堆栈结构
在堆栈的处理上,μC/OS-II为每个任务分配一个独立的堆栈,堆栈空间按任务中最大需求进行分配。这种方法可保证程序可靠运行,但却是以浪费大量的空间为代价。对一些小系统来说,没有扩展外部RAM,内部RAM相当小,RAM的空间利用就非常重要了。下面就来探讨如何改进μC/OS内核,以达到减少任务栈的内存需求。
在μC/OS-II中,每个任务都定义了一个独立的堆栈空间,这个堆栈空间用来存放任务的相关信息,具体包括以下几个部分(如图1所示):
◆ 任务中定义的局部变量及被调用函数可能在栈上分配的局部变量;
◆ 任务中各个函数的返回地址;
◆ 发生中断时需要保存的上下文;
◆ 中断嵌套时需要保存的上下文。
在这4个部分中,前3个的内存需求是比较容易估算的,只要察看反汇编代码,并计算各个函数的栈需求,留有一定的裕量就可以了。但是第4
uCOS II堆栈设计思想
最新推荐文章于 2024-08-03 11:25:29 发布