我是使用ZLG移植的UC/OS-II V2.52.我使用 err = OSTaskCreateExt(task1,&i,&task_stack[TASK_STACK_SIZE-1],i,i,task_stack, TASK_STACK_SIZE,(void *)NULL,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); 函数生成一个任务,其中OSTaskCreateExt()的第二个参数void *pdata指向 &i,而i是一个unsigned char 型的变量,其值从2-9。但是在 void task1(*pdata)任务中,发现*pdata并非我在OSTaskCreateExt()中给的数据。 我在task1(void *pdata)中是这样使用*pdata的: char taskid[3]; taskid[0] = *(char *)pdata; taskid[0] = taskid[0] + '0'; taskid[1] = '\n'; taskid[2] = '\0'; 然后将taskid打印出来。
这是什么原因引起的? |