初级会员

- 积分
- 102
- 金钱
- 102
- 注册时间
- 2016-3-9
- 在线时间
- 24 小时
|
4金钱
麻烦大家帮我分析一下我的程序错在哪里,我做的是一个消息邮箱,在任务App_Task_LED1中用一个变量times记录App_Task_LED1的运行次数,并将其作为消息邮箱Str_Box发送给任务App_Task_Printf,之后通过串口打印出来。UCOS已经移植成功了。
int main(void)
{
INT8U os_err;
SystemInit();
USART_Configuration();
delay_init();
NVIC_USART_Config();
LED_Configuration ();
OSInit();
OSStatInit();
OS_CPU_SysTickInit();
Str_Box = OSMboxCreate((void*)0); // 创建消息邮箱
os_err = OSTaskCreate( App_Task_LED1,
(void *) 0,
(OS_STK *) &App_Task_LED1_Stk[APP_TASK_LED1_STK_SIZE - 1],
(INT8U) APP_TASK_LED1_PRIO);
//创建输出printf的任务
os_err = OSTaskCreate( App_Task_Printf,
(void*) 0,
(OS_STK*) &App_Task_Printf_Stk[APP_TASK_Printf_STK_SIZE - 1],
(INT8U ) APP_TASK_Printf_PRIO);
os_err = os_err;//仅仅是清除这个变量未使用的编译警告
//启动uSOS 操作系统
OSStart ();
void App_Task_LED1(void* pdata)
{
pdata = pdata;
for (;;)
{
sprintf(s,"%d",times);
OSMboxPost(Str_Box,&s); //发送消息
times++;
OSTimeDly(100);
}
}
void App_Task_Printf(void* pdata)
{
pdata = pdata;
while(1)
{
ss = OSMboxPend(Str_Box,0,&err);
printf("%s",ss);
OSTimeDly(100);
}
}
谢谢
|
|