各位坛友,我的ucosiii跑起来之后到startup之后任务运行不了,仿真后得出以下结果,是什么原因造成的?
系统部分的代码如下:
[mw_shl_code=c,true]//main:
static OS_TCB start_up_TCB;
static CPU_STK start_up_STK[COMMON_STK_SIZE];
void main(void)
{
OS_ERR err;
DISABLE_INTERRUPTS(); //disable all interrupts
OSInit(&err);
if(err!=OS_ERR_NONE)
{
while(1);
}
/*创建任务*/
OSTaskCreate((OS_TCB *)&start_up_TCB, //任务控制块指针
(CPU_CHAR *)"Startup_Task", //任务名称
(OS_TASK_PTR )start_up, //任务代码指针
(void *)0, //传递给任务的参数parg
(OS_PRIO )start_up_prio, //任务优先级
(CPU_STK *)&start_up_STK[0], //任务堆栈基地址
(CPU_STK_SIZE)COMMON_STK_SIZE/10, //堆栈剩余警戒线
(CPU_STK_SIZE)COMMON_STK_SIZE, //堆栈大小
(OS_MSG_QTY )0, //可接收的最大消息队列数
(OS_TICK )0, //时间片轮转时间
(void *)0, //任务控制块扩展信息
(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR), //任务选项
(OS_ERR *)&err); //返回值
OSStart(&err);
}
//startup:
void start_up(void *p_arg)
{
OS_ERR err;
p_arg=p_arg;
bsp_init(); //hardware init
CPU_Init(); //CPU init
Init_SysTick(); //systick init
ENABLE_INTERRUPTS(); //interrupts enable
printf("\r\nstartup\r\n");
OSTaskCreate((OS_TCB *)&car_control_TCB, //任务控制块指针
(CPU_CHAR *)"Car_Control", //任务名称
(OS_TASK_PTR )car_control, //任务代码指针
(void *)0, //传递给任务的参数parg
(OS_PRIO )car_control_prio, //任务优先级
(CPU_STK *)&car_control_STK[0], //任务堆栈基地址
(CPU_STK_SIZE)COMMON_STK_SIZE/10, //堆栈剩余警戒线
(CPU_STK_SIZE)COMMON_STK_SIZE, //堆栈大小
(OS_MSG_QTY )0, //可接收的最大消息队列数
(OS_TICK )0, //时间片轮转时间
(void *)0, //任务控制块扩展信息
(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR), //任务选项
(OS_ERR *)&err); //返回值
//OSTaskDel(&Start_Up_TCB,&err);
while(1);
}
//栈空间定义:
#define COMMON_STK_SIZE 32 [/mw_shl_code]
|