uC/OS-II任务栈处理的一种改进方法
较高的场合,一般主要用在16位或者32位微处理器平台环境。值得注意的是,在某些微处理器中,虽然可使用的数据存储器可以设计得较大,但堆栈所能使用的存储器却是有限的。比如8031系列存储器,堆栈只能使用内部的128字节数据存储器,即使系统中有64K字节的外部数据存储器,任务栈的总空间也不能超过128字节。这种处理器使用共用任务栈结构的RTOS就更好一些。
本文链接地址:http://www.oyaya.net/fanwen/view/147102.html
由于共用任务栈系统需要较长的任务切换时间,不适于任务切换频繁的场合,在很多嵌入式系统中,长时间只有几个任务会处于运行状态,其它任务在特定的条件下才会运行。对于RTOS的使用者,也可以适当地划分任务,来减小任务切换的时间。
无论使用哪种方法,在存储空间有限时,任务栈的长度应仔细计算。计算的根据是任务中的函数嵌套数、函数局部变量长度。对于共用任务栈,还要考虑同时运行态和挂起态的最大任务数。一些编译器可以生成堆栈溢出检查代码,在调试时可将该编译开关打开,以测试需要的实际堆栈长度。
《uC/OS-II任务栈处理的一种改进方法(第4页)》