任务堆栈的建立
分类:任务堆栈分为静态堆栈和动态堆栈,前者在编译时建立,后者在运行时建立
建立堆栈前要声明堆栈的类型,在UC/OS中堆栈的类型是两个32位的无符号整型变量,一个表示已经使用过的空间,一个表示未使用过的空间的大小
静态堆栈的建立 即建立一个堆栈型数组:static OS_STK MyTaskStack[stack_size] 或者OS_STK MyTaskStack[stack_size]
动态堆栈的建立 :OS_TCK *p;
p=(OS_TCK *)malloc(stack_size);
if(p!=(OS_TAK *)0) /*防止内存碎片过多而导致出现无法分配内存的情况*/
{ Create the task;}
在建立任务时要注意,堆栈是从下往上增长还是从上往下减的,根据不同的方式,将栈顶传入任务的对应的参数中。
小结:堆栈建立:静态建立,动态建立
对于动态建立,要进行动态建立是否成功的检查。