新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2016-12-6
- 在线时间
- 1 小时
|
1金钱
原子哥,我有两个任务,分别在任务1里面打印输出 printf("\r\n led0_task float value =%f V \r\n",12.5); ,任务2里输出printf("\r\n led1_task float value =%f V \r\n",12.5); ,但最后任务1里输出错误,任务2里输出正确。请问是什么原因?
led1_task float value =12.500000 V
led0_task float value =0.000000 V
led1_task float value =12.500000 V
led0_task float value =0.000000 V
led1_task float value =12.500000 V
led0_task float value =0.000000 V
led1_task float value =12.500000 V
led0_task float value =0.000000 V
led1_task float value =12.500000 V
led0_task float value =0.000000 V
我APP里的程序如下:
//led0任务函数
void led0_task(void *p_arg)
{
OS_ERR err;
p_arg = p_arg;
while(1)
{
printf("\r\n led0_task float value =%f V \r\n",12.5);
LED0=~LED0;
OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err); //延时500ms
}
}
//led1任务函数
void led1_task(void *p_arg)
{
OS_ERR err;
p_arg = p_arg;
while(1)
{
printf("\r\n led1_task float value =%f V \r\n",12.5);
LED1=~LED1;
OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err); //延时500ms
}
}
原代码见附件。
|
最佳答案
查看完整内容[请看2#楼]
任务堆栈,做8字节对齐就OK!
__align(8) CPU_STK LED0_TASK_STK[LED0_STK_SIZE]; //任务堆栈
|