|
发表于 2013-12-13 21:29:35
|
显示全部楼层
你的这个启动任务的WHILE函数里面是空的吗,最好写上个延迟。- /*
- *********************************************************************************************************
- * 函 数 名: AppTaskStart
- * 功能说明: 这是一个启动任务,在多任务系统启动后,必须初始化滴答计数器(在BSP_Init中实现)
- * 形 参:p_arg 是在创建该任务时传递的形参
- * 返 回 值: 无
- 优 先 级:2
- *********************************************************************************************************
- */
- static void AppTaskStart (void *p_arg)
- {
- OS_ERR err;
- OS_PEND_DATA pend_data_tbl[2];
- OS_OBJ_QTY nbr_rdy;
- uint32_t *p_msg;
- (void)p_arg;
- bsp_Init();
- CPU_Init();
- BSP_Tick_Init();
- //Mem_Init();
- //Math_Init();
- #if OS_CFG_STAT_TASK_EN > 0u
- OSStatTaskCPUUsageInit(&err);
- #endif
- #ifdef CPU_CFG_INT_DIS_MEAS_EN
- CPU_IntDisMeasMaxCurReset();
- #endif
- AppObjCreate();
- AppTaskCreate();
- while (1)
- {
-
- //挂起多任务只支持信号量和消息队列
-
- /*pend_data_tbl[0].PendObjPtr = (OS_PEND_OBJ *)&SEM_MUTIL;
- pend_data_tbl[1].PendObjPtr = (OS_PEND_OBJ *)&Q_Msg;
- nbr_rdy = OSPendMulti ((OS_PEND_DATA *)pend_data_tbl,
- (OS_OBJ_QTY )2,
- (OS_TICK )0,
- (OS_OPT )OS_OPT_PEND_BLOCKING,
- (OS_ERR *)&err);
- if(err == OS_ERR_NONE)
- {
- if(pend_data_tbl[0].RdyObjPtr == (OS_PEND_OBJ *)&SEM_MUTIL)
- {
- printf("FLGASUCCESS\\r\\n");
- }
- else if(pend_data_tbl[1].RdyObjPtr == (OS_PEND_OBJ *)&Q_Msg)
- {
- p_msg = pend_data_tbl[1].RdyMsgPtr;
- printf("%d\\r\\n", p_msg[0]);
- printf("%d\\r\\n", p_msg[1]);
- printf("%d\\r\\n", p_msg[2]);
- printf("%d\\r\\n", p_msg[3]);
- printf("%d\\r\\n", p_msg[4]);
- printf("%d\\r\\n", p_msg[5]);
- }
- }*/
-
- }
-
- }
复制代码 |
|