[uCOS/uCGUI] keil/ucos任务函数:运行到任务函数内部时,sp的值会不会变

quanxi   2012-2-18 12:56 楼主
执行这个函数内部时,sp的值会不会变化?
sp的值会不会,因为给局部变量赋值,或操作局部变量而变化?
void Task1(void *nouse) reentrant
{
   unsigned char Str0[] = "Welcome, uCOS-II is Start !\r\n";
   unsigned char Str1[] = "Task1 is running! LED1=OFF\r\n";
   unsigned char Strv[] = "uCosII_Ver: ";
   unsigned char StrYC[] = "Task1 is running! LED1=ON\r\n";
        nouse = nouse;
   
   SendStr(Str0, strlen(Str0));
   DecTochar(OSVersion(), strbuf);
   SendStr(Strv, strlen(Strv));
   SendStr(strbuf, strlen(strbuf));
   for(;;)
   {
                  LED1 = 0;
                  SendStr(Str1, strlen(Str1));
                  OSTimeDlyHMSM(0, 0, 1, 0);

                  LED1 = 1;
                  SendStr(StrYC, strlen(StrYC));
                  OSTimeDlyHMSM(0, 0, 1, 0);
  }  
}

回复评论 (1)

sp会因为4个char数组指针变量预留空间而压16个字节(具体多少要根据编译器而定).赋值操作是不会改变sp指针的.除非有函数调用.
成长,学习
点赞  2012-2-26 23:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复