Thursday, January 21, 2010

关于OS_STK的宽度

       移植μC/OS的时候,用户必须将任务堆栈的数据类型告诉给μC/OS-Ⅱ,所有的任务堆栈都必须用OS_TSK 声明数据类型。这个过程是通过为OS_STK 声明正确的C 数据类型来完成的。而这个数据类型的宽度是和处理器相关的,需要与处理器上的堆栈成员宽度一致,而处理器上的堆栈一般与处理器上的寄存器宽度或者数据宽度一致。我们只需要根据这个标准设定OS_STK的宽度即可。比如在ADS编译器上unsigned int的宽度是4个字节,而ARM处理器的堆栈宽度也为4个字节,因此可以定义OS_STK如下:
typedef unsigned int   OS_STK;                   /*Each stack entry is 32-bit wide*/

No comments:

Post a Comment