/* ********************************************************************************************************* * STARTUP TASK * * Description : This is an example of a startup task. As mentioned in the book's text, you MUST * initialize the ticker only once multitasking has started. * * Arguments : p_arg is the argument passed to 'AppTaskStart()' by 'OSTaskCreate()'. * * Returns : none * * Notes : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not * used. The compiler should not generate any code for this statement. ********************************************************************************************************* */ static void AppTaskStart (void *p_arg) { OS_ERR err; (void)p_arg; BSP_Init(); /* Initialize BSP functions */ BSP_Tick_Init(); /* Initialize Tick Services. */ App_OS_SetAllHooks(); MEM_Init(); DR_Init(); #if OS_CFG_STAT_TASK_EN > 0u OSStatTaskCPUUsageInit(&err); /* Compute CPU capacity with no task running */ #endif #ifdef CPU_CFG_INT_DIS_MEAS_EN CPU_IntDisMeasMaxCurReset(); #endif DR_LED_Off(0u); /* Turn Off LEDs after initialization */ APP_TRACE_DBG(("Creating Application Kernel Objects\n\r")); AppObjCreate(); /* Create Applicaiton kernel objects */ APP_TRACE_DBG(("Creating Application Tasks\n\r")); AppDataAcqCreate(); /* Create Application tasks */ while (DEF_TRUE) { /* Task body, always written as an infinite loop. */ DR_LED_On(1u); OSTimeDlyHMSM(0u, 0u, 0u, 10u, OS_OPT_TIME_HMSM_STRICT, &err); DR_LED_Off(1u); OSTimeDlyHMSM(0u, 0u, 1u, 0u, OS_OPT_TIME_HMSM_STRICT, &err); } }
static void AppTaskStart (void *p_arg) { OS_ERR err; (void)p_arg; BSP_Tick_Init(); bsp_Init(); CPU_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 AppTimerCreate(); AppObjCreate(); AppTaskCreate(); while (1) { //GPIOG->ODR ^= GPIO_Pin_10; //添加LED指示灯,指示星务计算机工作状态 2014/10/18 BSP_OS_TimeDlyMs(2000); //printf("living!\r\n"); //bsp_LedToggle(1); //bsp_LedToggle(2); //bsp_LedToggle(3); } }
static void AppTaskStart (void *p_arg) { OS_ERR err; CPU_INT32U r0; CPU_INT32U r1; CPU_INT32U r2; CPU_INT32U r3; CPU_INT32U r4; CPU_INT32U r5; CPU_INT32U r6; CPU_INT32U r7; CPU_INT32U r8; CPU_INT32U r9; CPU_INT32U r10; CPU_INT32U r11; CPU_INT32U r12; (void)p_arg; r0 = 0u; /* Initialize local variables. */ r1 = 1u; r2 = 2u; r3 = 3u; r4 = 4u; r5 = 5u; r6 = 6u; r7 = 7u; r8 = 8u; r9 = 9u; r10 = 10u; r11 = 11u; r12 = 12u; BSP_Init(); /* Initialize BSP functions */ CPU_Init(); /* Initialize the uC/CPU services */ #if OS_CFG_STAT_TASK_EN > 0u OSStatTaskCPUUsageInit(&err); /* Compute CPU capacity with no task running */ #endif #ifdef CPU_CFG_INT_DIS_MEAS_EN CPU_IntDisMeasMaxCurReset(); #endif #if (APP_CFG_SERIAL_EN == DEF_ENABLED) App_SerialInit(); /* Initialize Serial Communication for Application ... */ #endif APP_TRACE_DBG(("Creating Application kernel objects\n\r")); AppObjCreate(); /* Create Applicaiton kernel objects */ APP_TRACE_DBG(("Creating Application Tasks\n\r")); AppTaskCreate(); /* Create Application tasks */ BSP_LED_Off(0u); while (DEF_TRUE) { /* Task body, always written as an infinite loop. */ BSP_LED_Toggle(0u); OSTimeDlyHMSM(0u, 0u, 0u, 100u, OS_OPT_TIME_HMSM_STRICT, &err); if ((r0 != 0u) || /* Check task context. */ (r1 != 1u) || (r2 != 2u) || (r3 != 3u) || (r4 != 4u) || (r5 != 5u) || (r6 != 6u) || (r7 != 7u) || (r8 != 8u) || (r9 != 9u) || (r10 != 10u) || (r11 != 11u) || (r12 != 12u)) { APP_TRACE_INFO(("Context Error\n")); } } }