static void AppTaskCreate (void) { if (DEBUG) xil_printf("DEBUG: INSIDE AppTaskCreate\n\r"); CPU_INT08U err; /* Crea la segunda tarea de la aplicación */ OSTaskCreateExt(AppTaskSecond, (void *)0, &AppTaskSecondStk[APP_TASK_SECOND_STK_SIZE - 1], APP_TASK_SECOND_PRIO, APP_TASK_SECOND_ID, &AppTaskSecondStk[0], APP_TASK_SECOND_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskNameSet(APP_TASK_SECOND_PRIO, (CPU_INT08U *)"App Task Second", &err); /* Crea la segunda tarea de la aplicación */ OSTaskCreateExt(AppTaskUART, (void *)0, &AppTaskUARTStk[APP_TASK_UART_STK_SIZE - 1], APP_TASK_UART_PRIO, APP_TASK_UART_ID, &AppTaskUARTStk[0], APP_TASK_UART_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskNameSet(APP_TASK_UART_PRIO, (CPU_INT08U *)"App Task UART", &err); }
static void AppTaskCreate (void) { CPU_INT08U err; OSTaskCreateExt(AppTask1, /* Create start task 1 */ (void *)0, (OS_STK *)&AppTask1Stk[APP_TASK1_STK_SIZE - 1], APP_START_TASK1_PRIO, APP_START_TASK1_PRIO, (OS_STK *)&AppTask1Stk[0], APP_TASK1_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #if OS_TASK_NAME_SIZE > 7 OSTaskNameSet(APP_START_TASK1_PRIO, (CPU_CHAR *)"Task 1", &err); #endif OSTaskCreateExt(AppTask2, /* Create start task 1 */ (void *)0, (OS_STK *)&AppTask2Stk[APP_TASK2_STK_SIZE - 1], APP_START_TASK2_PRIO, APP_START_TASK2_PRIO, (OS_STK *)&AppTask2Stk[0], APP_TASK2_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #if OS_TASK_NAME_SIZE > 7 OSTaskNameSet(APP_START_TASK1_PRIO, (CPU_CHAR *)"Task 2", &err); #endif }
void main(int argc, char *argv[]) { INT8U err; #if 0 BSP_IntDisAll(); /* For an embedded target, disable all interrupts until we are ready to accept them */ #endif OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */ sysinit(); OSTaskCreate(AppStartTask,(void *)0,(OS_STK *)&AppStartTaskStk[0][TASK_STK_SIZE-1],2); OSTaskCreate(test2, (void *)0,(OS_STK *)&AppStartTaskStk[1][TASK_STK_SIZE-1],3); OSTaskCreate(test3, (void *)0,(OS_STK *)&AppStartTaskStk[2][TASK_STK_SIZE-1],4); OSTaskCreate(getStr, (void *)0,(OS_STK *)&AppStartTaskStk[3][TASK_STK_SIZE-1],5); #if OS_TASK_NAME_SIZE > 11 OSTaskNameSet(APP_TASK_START_PRIO, (INT8U *)"Start Task", &err); #endif #if OS_TASK_NAME_SIZE > 14 OSTaskNameSet(OS_IDLE_PRIO, (INT8U *)"uC/OS-II Idle", &err); #endif #if (OS_TASK_NAME_SIZE > 14) && (OS_TASK_STAT_EN > 0) OSTaskNameSet(OS_STAT_PRIO, "uC/OS-II Stat", &err); #endif OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */ }
/** \brief This is the entry point in the application code. */ int p2_init(void) { INT8U osErr; //==== initialize local variables memset(&uart_app_v,0x00,sizeof(uart_app_v)); uart_app_v.uartTxLen = DLFT_LEN; uart_app_v.uartTxDelay = DLFT_DELAY; //==== initialize helper tasks cli_task_init( "uart", // appName cliCmdDefs // cliCmds ); loc_task_init( JOIN_NO, // fJoin NETID_NONE, // netId UDPPORT_NONE, // udpPort NULL, // joinedSem BANDWIDTH_NONE, // bandwidth NULL // serviceSem ); //===== create tasks // uartTxTask task osErr = OSTaskCreateExt( uartTxTask, (void *)0, (OS_STK*)(&uart_app_v.uartTxTaskStack[TASK_APP_UART_TX_STK_SIZE-1]), TASK_APP_UART_TX_PRIORITY, TASK_APP_UART_TX_PRIORITY, (OS_STK*)uart_app_v.uartTxTaskStack, TASK_APP_UART_TX_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR ); ASSERT(osErr == OS_ERR_NONE); OSTaskNameSet(TASK_APP_UART_TX_PRIORITY, (INT8U*)TASK_APP_UART_TX_NAME, &osErr); ASSERT(osErr == OS_ERR_NONE); // uartRxTask task osErr = OSTaskCreateExt( uartRxTask, (void *)0, (OS_STK*)(&uart_app_v.uartRxTaskStack[TASK_APP_UART_RX_STK_SIZE-1]), TASK_APP_UART_RX_PRIORITY, TASK_APP_UART_RX_PRIORITY, (OS_STK*)uart_app_v.uartRxTaskStack, TASK_APP_UART_RX_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR ); ASSERT(osErr == OS_ERR_NONE); OSTaskNameSet(TASK_APP_UART_RX_PRIORITY, (INT8U*)TASK_APP_UART_RX_NAME, &osErr); ASSERT(osErr == OS_ERR_NONE); return 0; }
void ProbeRS232_OS_Init (void) { #if (OS_TASK_NAME_SIZE > 13) || (OS_EVENT_NAME_SIZE > 13) CPU_INT08U err; #endif #if (OS_SEM_EN > 0) ProbeRS232_OS_Sem = OSSemCreate(0); #if (OS_EVENT_NAME_SIZE > 16) OSEventNameSet(ProbeRS232_OS_Sem, (CPU_INT08U *)"uC/Probe RS-232", &err); #elif (OS_EVENT_NAME_SIZE > 13) OSEventNameSet(ProbeRS232_OS_Sem, (CPU_INT08U *)"Probe RS-232", &err); #endif #endif #if (OS_TASK_CREATE_EXT_EN > 0) #if (OS_STK_GROWTH == 1) err = OSTaskCreateExt( ProbeRS232_OS_Task, (void *)0, &ProbeRS232_OS_TaskStk[PROBE_RS232_TASK_STK_SIZE - 1],/* Set Top-Of-Stack. */ PROBE_RS232_TASK_PRIO, PROBE_RS232_TASK_PRIO, &ProbeRS232_OS_TaskStk[0], /* Set Bottom-Of-Stack. */ PROBE_RS232_TASK_STK_SIZE, (void *)0, /* No TCB extension. */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack. */ #else err = OSTaskCreateExt( ProbeRS232_OS_Task, p_arg, &ProbeRS232_OS_TaskStk[0], /* Set Top-Of-Stack. */ PROBE_RS232_TASK_PRIO, PROBE_RS232_TASK_PRIO, &ProbeRS232_OS_TaskStk[PROBE_RS232_TASK_STK_SIZE - 1],/* Set Bottom-Of-Stack. */ PROBE_RS232_TASK_STK_SIZE, (void *)0, /* No TCB extension. */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack. */ #endif #else #if (OS_STK_GROWTH == 1) err = OSTaskCreate( ProbeRS232_OS_Task, p_arg, &ProbeRS232_OS_TaskStk[PROBE_RS232_TASK_STK_SIZE - 1], PROBE_RS232_TASK_PRIO); #else err = OSTaskCreate( ProbeRS232_OS_Task, p_arg, &ProbeRS232_OS_TaskStk[0], PROBE_RS232_TASK_PRIO); #endif #endif #if (OS_TASK_NAME_SIZE > 16) OSTaskNameSet(PROBE_RS232_TASK_PRIO, (CPU_INT08U *)"uC/Probe RS-232", &err); #elif (OS_TASK_NAME_SIZE > 13) OSTaskNameSet(PROBE_RS232_TASK_PRIO, (CPU_INT08U *)"Probe RS-232", &err); #endif }
/* ********************************************************************************************************* * App_TaskCreate() * * Description : Create the application tasks. * * Argument(s) : none. * * Return(s) : none. * * Note(s) : none. ********************************************************************************************************* */ static void App_TaskCreate (void) { #if (OS_TASK_NAME_EN > 0) CPU_INT08U err; #endif /* Create the One task */ OSTaskCreateExt((void (*)(void *)) APP_TaskOne, (void *) 0, (OS_STK *)&App_TaskOneStk[APP_CFG_TASK_ONE_STK_SIZE - 1], (INT8U ) APP_CFG_TASK_ONE_PRIO, (INT16U ) APP_CFG_TASK_ONE_PRIO, (OS_STK *)&App_TaskOneStk[0], (INT32U ) APP_CFG_TASK_ONE_STK_SIZE, (void *) 0, #ifdef __ICCARM__ /* IAR port */ (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR | OS_TASK_OPT_SAVE_FP)); #else (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #endif /* Create the Two task */ OSTaskCreateExt((void (*)(void *)) APP_TaskTwo, (void *) 0, (OS_STK *)&App_TaskTwoStk[APP_CFG_TASK_TWO_STK_SIZE - 1], (INT8U ) APP_CFG_TASK_TWO_PRIO, (INT16U ) APP_CFG_TASK_TWO_PRIO, (OS_STK *)&App_TaskTwoStk[0], (INT32U ) APP_CFG_TASK_TWO_STK_SIZE, (void *) 0, #ifdef __ICCARM__ /* IAR port */ (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR | OS_TASK_OPT_SAVE_FP)); #else (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #endif /* Create the Three task */ OSTaskCreateExt((void (*)(void *)) APP_TaskThree, (void *) 0, (OS_STK *)&App_TaskThreeStk[APP_CFG_TASK_TWO_STK_SIZE - 1], (INT8U ) APP_CFG_TASK_THREE_PRIO, (INT16U ) APP_CFG_TASK_THREE_PRIO, (OS_STK *)&App_TaskThreeStk[0], (INT32U ) APP_CFG_TASK_THREE_STK_SIZE, (void *) 0, #ifdef __ICCARM__ /* IAR port */ (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR | OS_TASK_OPT_SAVE_FP)); #else (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #endif #if (OS_TASK_NAME_EN > 0) OSTaskNameSet(APP_CFG_TASK_ONE_PRIO, "One", &err); OSTaskNameSet(APP_CFG_TASK_TWO_PRIO, "Two", &err); OSTaskNameSet(APP_CFG_TASK_TWO_PRIO, "Three", &err); #endif }
int main(void) { #if (OS_TASK_NAME_EN > 0) CPU_INT08U err; #endif SYS_UnlockReg(); BSP_Init(); /* Initialize BSP functions */ BSP_Set_PLL_Freq(CLK_XTL_12M, PLL_DEFAULT_HZ); /* Configure PLL */ BSP_Set_System_Clock(CLK_PLL, 0); /* Select HCLK source clock as PLL */ SYS_LockReg(); OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */ CPU_Init(); /* Initialize the uC/CPU services */ Mem_Init(); /* Initialize memory managment module */ Math_Init(); /* Initialize mathematical module */ #if (OS_TASK_STAT_EN > 0) OSStatInit(); /* Determine CPU capacity */ #endif OSTaskCreateExt((void (*)(void *)) AppTask_1, /* Create the test task */ (void *) 0, (OS_STK *)&StackOfTask_1[TASK_STACK_SIZE - 1], (INT8U ) TASK_1_PRIO, (INT16U ) TASK_1_PRIO, (OS_STK *)&StackOfTask_1[0], (INT32U ) TASK_STACK_SIZE, (void *) 0, (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); OSTaskCreateExt((void (*)(void *)) AppTask_2, /* Create the start task */ (void *) 0, (OS_STK *)&StackOfTask_2[TASK_STACK_SIZE - 1], (INT8U ) TASK_2_PRIO, (INT16U ) TASK_2_PRIO, (OS_STK *)&StackOfTask_2[0], (INT32U ) TASK_STACK_SIZE, (void *) 0, (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #if (OS_TASK_NAME_EN > 0) OSTaskNameSet(TASK_1_PRIO, "Task 1", &err); OSTaskNameSet(TASK_2_PRIO, "Task 2", &err); #endif OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */ return (1); }
static void OSProbe_InitOS (void) { INT8U err; #if (OS_TASK_CREATE_EXT_EN > 0) #if (OS_STK_GROWTH == 1) err = OSTaskCreateExt((void (*)(void *)) OSProbe_Task, (void * ) 0, (OS_STK * )&OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], (INT8U ) OS_PROBE_TASK_PRIO, (INT16U ) OS_PROBE_TASK_PRIO, (OS_STK * )&OSProbe_TaskStk[0], (INT32U ) OS_PROBE_TASK_STK_SIZE, (void * ) 0, (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #else err = OSTaskCreateExt((void (*)(void *)) OSProbe_Task, (void * ) 0, (OS_STK * )&OSProbe_TaskStk[0], (INT8U ) OS_PROBE_TASK_PRIO, (INT16U ) OS_PROBE_TASK_PRIO, (OS_STK * )&OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], (INT32U ) OS_PROBE_TASK_STK_SIZE, (void * ) 0, (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #endif #else #if (OS_STK_GROWTH == 1) err = OSTaskCreate((void (*)(void *)) OSProbe_Task, (void * ) 0, (OS_STK * )&OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], (INT8U ) OS_PROBE_TASK_PRIO); #else err = OSTaskCreate((void (*)(void *)) OSProbe_Task, (void * ) 0, (OS_STK * )&OSProbe_TaskStk[0], (INT8U ) OS_PROBE_TASK_PRIO); #endif #endif #if (OS_VERSION < 287) #if (OS_TASK_NAME_SIZE > 1) OSTaskNameSet(OS_PROBE_TASK_PRIO, (INT8U *)"Probe OS PlugIn", &err); #endif #else #if (OS_TASK_NAME_EN > 0) OSTaskNameSet(OS_PROBE_TASK_PRIO, (INT8U *)"Probe OS PlugIn", &err); #endif #endif (void)&err; }
void main (void) { // VectorInit(1); // change pointer to int vectors for test pll_init(120); // Set the 5509 to 120MHz OSInit(); /* Initialize MicroC/OS-II */ // printf ("Alpha port test for MicroC/OS-II for 5509-DSP.\n"); // printf (" Port to TI TMS320VC5509 \n"); // printf ("\n"); MySem =OSSemCreate(1); err = OSTaskCreateExt(TaskStart, (void *)0, (void *)&TaskStartStk[TASKSTART_STK_SIZE-1], 10, 10, (void *)(&TaskStartStk[0]), TASKSTART_STK_SIZE, (void *)&TaskStart_SStk[TASKSTART_SSTK_SIZE-1], OS_TASK_OPT_STK_CLR + OS_TASK_OPT_STK_CHK); OSTaskNameSet(0, "TaskStart", &err); err = OSTaskCreateExt(Tasksecond, (void *)0, (void *)&Task2Stk[TASK_STK_SIZE-1], 11, 11, (void *)(&Task2Stk[0]), TASK_STK_SIZE, (void *)&Task2_SStk[TASK_SSTK_SIZE-1], OS_TASK_OPT_STK_CLR + OS_TASK_OPT_STK_CHK); OSTaskNameSet(1, "TaskSecond", &err); err = OSTaskCreateExt(Taskthird, (void *)0, (void *)&Task3Stk[TASK_STK_SIZE-1], 12, 12, (void *)(&Task3Stk[0]), TASK_STK_SIZE, (void *)&Task3_SStk[TASK_SSTK_SIZE-1], OS_TASK_OPT_STK_CLR + OS_TASK_OPT_STK_CHK); OSTaskNameSet(2, "TaskThird", &err); OSStart(); /* Start multitasking */ }
static void OSTmr_InitTask (void) { #if OS_TASK_NAME_SIZE > 6 INT8U err; #endif #if OS_TASK_CREATE_EXT_EN > 0 #if OS_STK_GROWTH == 1 (void)OSTaskCreateExt(OSTmr_Task, (void *)0, /* No arguments passed to OSTmrTask() */ &OSTmrTaskStk[OS_TASK_TMR_STK_SIZE - 1], /* Set Top-Of-Stack */ OS_TASK_TMR_PRIO, OS_TASK_TMR_ID, &OSTmrTaskStk[0], /* Set Bottom-Of-Stack */ OS_TASK_TMR_STK_SIZE, (void *)0, /* No TCB extension */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */ #else (void)OSTaskCreateExt(OSTmr_Task, (void *)0, /* No arguments passed to OSTmrTask() */ &OSTmrTaskStk[0], /* Set Top-Of-Stack */ OS_TASK_TMR_PRIO, OS_TASK_TMR_ID, &OSTmrTaskStk[OS_TASK_TMR_STK_SIZE - 1], /* Set Bottom-Of-Stack */ OS_TASK_TMR_STK_SIZE, (void *)0, /* No TCB extension */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */ #endif #else #if OS_STK_GROWTH == 1 (void)OSTaskCreate(OSTmr_Task, (void *)0, &OSTmrTaskStk[OS_TASK_TMR_STK_SIZE - 1], OS_TASK_TMR_PRIO); #else (void)OSTaskCreate(OSTmr_Task, (void *)0, &OSTmrTaskStk[0], OS_TASK_TMR_PRIO); #endif #endif #if OS_TASK_NAME_SIZE > 12 OSTaskNameSet(OS_TASK_TMR_PRIO, (INT8U *)"uC/OS-II Tmr", &err); #else #if OS_TASK_NAME_SIZE > 6 OSTaskNameSet(OS_TASK_TMR_PRIO, (INT8U *)"OS-Tmr", &err); #endif #endif }
int main (void) { CPU_INT08U os_err; /* Disable all ints until we are ready to accept them. */ BSP_IntDisAll(); /* Initialize "uC/OS-II, The Real-Time Kernel".*/ OSInit(); /* Create the start task.*/ os_err = OSTaskCreateExt((void (*)(void *)) App_TaskStart, (void * ) 0, (OS_STK * )&App_TaskStartStk[APP_TASK_START_STK_SIZE - 1], (INT8U ) APP_TASK_START_PRIO, (INT16U ) APP_TASK_START_PRIO, (OS_STK * )&App_TaskStartStk[0], (INT32U ) APP_TASK_START_STK_SIZE, (void * )0, (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK)); #if (OS_TASK_NAME_SIZE >= 11) OSTaskNameSet(APP_TASK_START_PRIO, (CPU_INT08U *)"Start Task", &os_err); #endif /* Start multitasking (i.e. give control to uC/OS-II).*/ OSStart(); return (0); }
int main (void) { #if (OS_TASK_NAME_SIZE > 7) && (OS_TASK_STAT_EN > 0) CPU_INT08U err; #endif // Add delay to ensure EXTBT module is correctly reset. #if UC3C cpu_delay_ms(AVR32_SCIF_RCOSC_FREQUENCY, 1000); #else cpu_delay_ms(AVR32_PM_RCOSC_FREQUENCY, 1000); #endif CPU_IntDis(); /*Disable all interrupts */ sysclk_init(); OSInit(); OSTaskCreateExt(app_task,(void *)0, (OS_STK *)&AppTaskStk[APP_TASK_STK_SIZE-1], APP_TASK_START_PRIO, APP_TASK_START_PRIO,(OS_STK *)&AppTaskStk[0], APP_TASK_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #if (OS_TASK_NAME_SIZE > 7) && (OS_TASK_STAT_EN > 0) OSTaskNameSet(APP_TASK_START_PRIO, (CPU_CHAR *)"Startup", &err); #endif OSStart(); return (0); }
/* Starts a new thread with priority "prio" that will begin its execution in the function "thread()". The "arg" argument will be passed as an argument to the thread() function. The id of the new thread is returned. Both the id and the priority are system dependent. */ sys_thread_t sys_thread_new(char *name, void (* thread)(void *arg), void *arg, int stacksize, int prio) { u8_t ubPrio = 0; u8_t ucErr; arg = arg; if((prio > 0) && (prio <= LWIP_TASK_MAX)) { ubPrio = (u8_t)(LWIP_START_PRIO + prio - 1); if(stacksize > LWIP_STK_SIZE) /* 任务堆栈大小不超过LWIP_STK_SIZE */ stacksize = LWIP_STK_SIZE; #if (OS_TASK_STAT_EN == 0) OSTaskCreate(thread, (void *)arg, &LWIP_TASK_STK[prio-1][stacksize-1],ubPrio); #else OSTaskCreateExt(thread, (void *)arg, &LWIP_TASK_STK[prio-1][stacksize-1],ubPrio ,ubPrio,&LWIP_TASK_STK[prio-1][0],stacksize,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #endif OSTaskNameSet(ubPrio, (u8_t*)name, &ucErr); } return ubPrio; }
/* ********************************************************************************************************* * main() * * Description : This is the standard entry point for C code. It is assumed that your code will call * main() once you have performed all necessary initialization. * * Argument(s) : none. * * Return(s) : none. * * Caller(s) : This the main standard entry point. * * Note(s) : none. ********************************************************************************************************* */ int main(void) { INT8U err; BSP_IntDisAll(); /* Disable all interrupts until we are ready to accept them */ App_MemAlloc(); OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */ OSTaskCreateExt((void (*)(void *)) App_TaskStart, /* Create the start task */ (void *) 0, (OS_STK *)&App_TaskStartStk[APP_CFG_TASK_START_STK_SIZE - 1], (INT8U ) APP_CFG_TASK_START_PRIO, (INT16U ) APP_CFG_TASK_START_PRIO, (OS_STK *)&App_TaskStartStk[0], (INT32U ) APP_CFG_TASK_START_STK_SIZE, (void *) 0, (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); OSTaskNameSet(APP_CFG_TASK_START_PRIO, "Start", &err); OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */ }
int main(void) { uint8_t os_err; __disable_irq(); //禁止所有中断。 OSInit(); //初始化uC/OS-II这个实时内核。 os_err = OSTaskCreateExt((void (*)(void *)) App_Task0, //创建一个开始任务。 (void * ) 0, (OS_STK * )&App_Task0Stack[APP_TASK0_STK_SIZE - 1], (uint8_t ) APP_TASK0_PRIO, (uint16_t ) APP_TASK0_PRIO, (OS_STK * )&App_Task0Stack[0], (INT32U ) APP_TASK0_STK_SIZE, (void * )0, (uint16_t )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK)); if(os_err == OS_ERR_NONE) { OSTaskNameSet(APP_TASK0_PRIO, (uint8_t *)"Start Task", &os_err); //给开始任务命名。 } OSStart(); //开始UCOS内核。 return 0; }
/*********************************************************************//** * @author * @brief * @date * @version * @description * @param[in] None. * @param[out] None. * @return * **********************************************************************/ void IRQ_Task_initial(void) { CPU_INT08U os_err; RTC_TIME_Type time; os_err = os_err; /* prevent warning... */ time.HOUR = 00; time.MIN = 00; // dailyMeterSem = OSSemCreate(0); if(IRQ_Q == NULL) return; os_err = OSTaskCreateExt((void (*)(void *)) IRQ_TaskStart, /* Create the start task. */ (void * ) 0, (OS_STK * )&IRQ_TaskStartStk[IRQ_STK_SIZE - 1], (INT8U ) IRQ_TASK_PRIO, (INT16U ) IRQ_TASK_PRIO, (OS_STK * )&IRQ_TaskStartStk[0], (INT32U ) IRQ_STK_SIZE, (void * )0, (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK)); #if OS_TASK_NAME_EN > 0 OSTaskNameSet(IRQ_TASK_PRIO, (CPU_INT08U *)"Start Task", &os_err); #endif }
CPU_INT16S main (void) { CPU_INT08U err; OSInit(); OSTaskCreate(Task_1, (void *)0, (OS_STK *)&Task_1_Stk[0], TASK_1_PRIO); OSTaskCreate(Task_2, (void *)0, (OS_STK *)&Task_2_Stk[0], TASK_2_PRIO); OSTaskNameSet(TASK_1_PRIO, (CPU_INT08U *)"Task 1", &err); OSTaskNameSet(TASK_2_PRIO, (CPU_INT08U *)"Task 2", &err); OSStart(); return (-1); }
/* Starts a new thread with priority "prio" that will begin its execution in the function "thread()". The "arg" argument will be passed as an argument to the thread() function. The id of the new thread is returned. Both the id and the priority are system dependent. */ sys_thread_t _sys_thread_new(const char *name, lwip_thread_fn thread, void *arg, int stacksize, int prio) { u8_t ubPrio = 0; u8_t ucErr; arg = arg; if((prio > 0) && (prio <= LWIP_TASK_MAX)) { ubPrio = (u8_t)(LWIP_START_PRIO + prio - 1); if(stacksize > LWIP_STK_SIZE) // 任务堆栈大小不超过LWIP_STK_SIZE stacksize = LWIP_STK_SIZE; #ifndef STK_CHECK OSTaskCreate(thread, (void *)arg, &LWIP_TASK_STK[prio-1][stacksize-1],ubPrio); #else OSTaskCreateExt(thread, (void *)arg, &LWIP_TASK_STK[prio-1][stacksize-1],ubPrio ,ubPrio,&LWIP_TASK_STK[prio-1][0],stacksize,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #endif OSTaskNameSet(ubPrio, (u8_t*)name, &ucErr); // return ubPrio; } return ubPrio; }
/*********************************************************************//** * @author * @brief * @date * @version * @description * @param[in] None. * @param[out] None. * @return * **********************************************************************/ void Dummy_initial(void) { CPU_INT08U os_err; RTC_TIME_Type time; os_err = os_err; /* prevent warning... */ time.HOUR = 00; time.MIN = 01; Dummy_SetAlarmTime(&time); os_err = OSTaskCreateExt((void (*)(void *)) Dummy_TaskStart, /* Create the start task. */ (void * ) 0, (OS_STK * )&Dummy_TaskStartStk[DUMMY_STK_SIZE - 1], (INT8U ) DUMMY_TASK_PRIO, (INT16U ) DUMMY_TASK_PRIO, (OS_STK * )&Dummy_TaskStartStk[0], (INT32U ) DUMMY_STK_SIZE, (void * )0, (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK)); #if OS_TASK_NAME_EN > 0 OSTaskNameSet(DUMMY_TASK_PRIO, (CPU_INT08U *)"Start Task", &os_err); #endif }
int main (void) { CPU_INT08U err; //printf("Stack addr is 0x%x - 0x%x", &FirstTaskStk[0], &FirstTaskStk[TASK_STK_SIZE - 1] ); BSP_IntDisAll(); OSInit(); /* Initialize uC/OS-II */ /* Initialize RS232_Uart_1 - Set baudrate and number of stop bits */ XUartNs550_SetBaud(XPAR_RS232_UART_1_BASEADDR, XPAR_XUARTNS550_CLOCK_HZ, 9600); XUartNs550_SetLineControlReg(XPAR_RS232_UART_1_BASEADDR, XUN_LCR_8_DATA_BITS); //err = printf("Hello World\n"); OSTaskCreateExt(FirstTask, (void *)0, &FirstTaskStk[TASK_STK_SIZE - 1], TASK1_ID, TASK1_PRIO, &FirstTaskStk[0], TASK_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskNameSet(TASK1_PRIO, (CPU_INT08U *)"FirstTask", &err); OSStart(); /* Start Multitasking */ return 0; /* Process should never reach this point */ }
int main(void) { #if (OS_TASK_NAME_EN > 0) CPU_INT08U err; #endif BSP_IntDisAll(); /* Disable all interrupts. */ OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */ OSTaskCreateExt((void (*)(void *)) AppTaskStart, /* Create the start task */ (void *) 0, (OS_STK *)&AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE - 1], (INT8U ) APP_CFG_TASK_START_PRIO, (INT16U ) APP_CFG_TASK_START_PRIO, (OS_STK *)&AppTaskStartStk[0], (INT32U ) APP_CFG_TASK_START_STK_SIZE, (void *) 0, (INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR)); #if (OS_TASK_NAME_EN > 0) OSTaskNameSet(APP_CFG_TASK_START_PRIO, "Start", &err); #endif OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */ return (1); }
/*********************************************************************//** * @author * @brief * @date * @version * @description * @param[in] None. * @param[out] None. * @return * **********************************************************************/ void SourceOnOff_initial(void) { CPU_INT08U os_err; RTC_TIME_Type time; os_err = os_err; /* prevent warning... */ time.HOUR = 23; time.MIN = 59; // dailyMeterSem = OSSemCreate(0); os_err = OSTaskCreateExt((void (*)(void *)) SourceOnOff_TaskStart, /* Create the start task. */ (void * ) 0, (OS_STK * )&Src_On_Off_TaskStartStk[SRC_ON_OFF_STK_SIZE - 1], (INT8U ) SRC_ON_OFF_TASK_PRIO, (INT16U ) SRC_ON_OFF_TASK_PRIO, (OS_STK * )&Src_On_Off_TaskStartStk[0], (INT32U ) SRC_ON_OFF_STK_SIZE, (void * )0, (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK)); #if OS_TASK_NAME_EN > 0 OSTaskNameSet(SRC_ON_OFF_TASK_PRIO, (CPU_INT08U *)"Start Task", &os_err); #endif }
int main (void) { #if (OS_TASK_NAME_SIZE > 7) && (OS_TASK_STAT_EN > 0) CPU_INT08U err; #endif CPU_IntDis(); /* Disable all interrupts until we are ready to accept them */ OSInit(); BSP_Init(); init_err_printf(); OSTaskCreateExt(AppTaskStart, (void *)0, (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1], APP_TASK_START_PRIO, APP_TASK_START_PRIO, (OS_STK *)&AppTaskStartStk[0], APP_TASK_START_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #if (OS_TASK_NAME_SIZE > 7) && (OS_TASK_STAT_EN > 0) OSTaskNameSet(APP_TASK_START_PRIO, (CPU_CHAR *)"Startup", &err); #endif OSStart(); info_printf("EVK1100_Interface to cyclone-III rustlight fpga starting\n"); return (0); }
int main(void) { GPIO_InitTypeDef GPIO_InitStructure; CPU_INT08U os_err; //BSP_Init(); //BSP_IntDisAll(); /* Disable all ints until we are ready to accept them. */ CPU_IntDis(); OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel". */ BSP_Init(); /* Initialize BSP functions. */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIOC->BSRR = 1<<0; os_err = OSTaskCreate((void (*) (void *)) App_TaskStart, /* Create the start task. */ (void *) 0, (OS_STK *) &App_TaskStartStk[APP_TASK_START_STK_SIZE - 1], (INT8U) APP_TASK_START_PRIO); #if (OS_TASK_NAME_SIZE >= 11) OSTaskNameSet(APP_TASK_START_PRIO, (CPU_INT08U *) "Start Task", &os_err); #endif // InfoSem = OSSemCreate(0); // Disp_Box = OSMboxCreate((void *) 0); OSTimeSet(0); OSStart(); /* Start multitasking (i.e. give control to uC/OS-II). */ return (0); }
int main (void) { CPU_INT08U err; BSP_IntDisAll(); /* Disable all interrupts until we are ready to accept them */ OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */ OSTaskCreateExt(AppTaskStart, /* Create the start task */ (void *)0, (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1], APP_TASK_START_PRIO, APP_TASK_START_PRIO, (OS_STK *)&AppTaskStartStk[0], APP_TASK_START_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #if OS_TASK_NAME_SIZE > 13 OSTaskNameSet(APP_TASK_START_PRIO, "Startup", &err); #endif OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */ }
INT8U CTask::Create(bool bRunNow) { INT32U nStackSize = StackSize(); m_nId = s_nNextId ++; OSSchedLock(); INT8U errno = OSTaskCreateExt(_callbackFunc, (void*)this, &m_pTaskStack[nStackSize-1], m_nPrio, m_nId, m_pTaskStack, nStackSize, (void*)NULL, OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR); if (!errno){ OSTaskNameSet(m_nPrio, (INT8U*)m_aTaskName, &errno); } if (!bRunNow){ OSTaskSuspend(m_nPrio); } OSSchedUnlock(); return errno; }
static void OSView_InitOS (void) { #if OS_TASK_NAME_EN > 0 || OS_EVENT_NAME_SIZE > 7 INT8U err; #endif #if OS_SEM_EN > 0 OSView_Sem = OSSemCreate(0); #if OS_EVENT_NAME_EN > 0 OSEventNameSet(OSView_Sem, (INT8U *)"uC/OS-View Signal", &err); #endif #endif #if OS_TASK_CREATE_EXT_EN > 0 #if OS_STK_GROWTH == 1 (void)OSTaskCreateExt(OSView_Task, (void *)0, /* No arguments passed to OSView_Task() */ &OSView_TaskStk[OS_VIEW_TASK_STK_SIZE - 1], /* Set Top-Of-Stack */ OS_VIEW_TASK_PRIO, /* Lowest priority level */ OS_VIEW_TASK_ID, &OSView_TaskStk[0], /* Set Bottom-Of-Stack */ OS_VIEW_TASK_STK_SIZE, (void *)0, /* No TCB extension */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */ #else (void)OSTaskCreateExt(OSView_Task, (void *)0, /* No arguments passed to OSView_Task() */ &OSView_TaskStk[0], /* Set Top-Of-Stack */ OS_VIEW_TASK_PRIO, /* Lowest priority level */ OS_VIEW_TASK_ID, &OSView_TaskStk[OS_VIEW_TASK_STK_SIZE - 1], /* Set Bottom-Of-Stack */ OS_VIEW_TASK_STK_SIZE, (void *)0, /* No TCB extension */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */ #endif #else #if OS_STK_GROWTH == 1 (void)OSTaskCreate(OSView_Task, (void *)0, &OSView_TaskStk[OS_VIEW_TASK_STK_SIZE - 1], OS_VIEW_TASK_PRIO); #else (void)OSTaskCreate(OSView_Task, (void *)0, &OSView_TaskStk[0], OS_VIEW_TASK_PRIO); #endif #endif #if OS_TASK_NAME_EN > 0 OSTaskNameSet(OS_VIEW_TASK_PRIO, (INT8U *)"uC/OS-View", &err); #endif }
/** \brief This is the entry point for the application code. */ int p2_init(void) { dn_error_t dnErr; INT8U osErr; //===== initialize dnm_cli module // open CLI port dnErr = dnm_cli_openPort(DN_CLI_PORT_C0, 9600); ASSERT(dnErr==DN_ERR_NONE); // change CLI access level dnErr = dnm_cli_changeAccessLevel(DN_CLI_ACCESS_USER); ASSERT(dnErr==DN_ERR_NONE); //===== initialize dnm_local module // create a synchronous channel for the dnm_local module to receive notifications from the stack dnErr = dn_createSyncChannel(&hello_app_vars.locNotifChannel); ASSERT(dnErr==DN_ERR_NONE); // register that channel to DN_MSG_TYPE_NET_NOTIF notifications dnErr = dn_registerChannel(hello_app_vars.locNotifChannel, DN_MSG_TYPE_NET_NOTIF); ASSERT(dnErr==DN_ERR_NONE); // initialize the local interface dnErr = dnm_loc_init( PASSTHROUGH_OFF, // mode &hello_app_vars.cliContext, // cliContext 0, // TraceFlag hello_app_vars.locNotifChannelBuf, // pBuffer sizeof(hello_app_vars.locNotifChannelBuf) // buffLen ); ASSERT(dnErr==DN_ERR_NONE); //===== initialize locNotifTask osErr = OSTaskCreateExt( locNotifTask, (void *) 0, (OS_STK*) (&hello_app_vars.locNotifTaskStack[TASK_APP_LOCNOTIF_STK_SIZE - 1]), TASK_APP_LOCNOTIF_PRIORITY, TASK_APP_LOCNOTIF_PRIORITY, (OS_STK*) hello_app_vars.locNotifTaskStack, TASK_APP_LOCNOTIF_STK_SIZE, (void *) 0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR ); ASSERT(osErr == OS_ERR_NONE); OSTaskNameSet(TASK_APP_LOCNOTIF_PRIORITY, (INT8U*)TASK_APP_LOCNOTIF_NAME, &osErr); ASSERT(osErr == OS_ERR_NONE); return 0; }
/** \brief This is the entry point in the application code. */ int p2_init(void) { dn_gpio_ioctl_cfg_out_t gpioOutCfg; dn_error_t status; dn_error_t dnErr; INT8U osErr; //===== initialize module variables memset(&spiNetApp_vars,0,sizeof(spiNetApp_vars_t)); spiNetApp_vars.period = PERIOD_DEFAULT; //===== initialize helper tasks // create a semaphore to indicate mote joined spiNetApp_vars.joinedSem = OSSemCreate(0); ASSERT(spiNetApp_vars.joinedSem!=NULL); // CLI task cli_task_init( &spiNetApp_vars.cliContext, // cliContext "spi_net", // appName &cliCmdDefs // cliCmds ); // local interface task loc_task_init( &spiNetApp_vars.cliContext, // cliContext JOIN_YES, // fJoin NULL, // netId WKP_SPI_NET, // udpPort spiNetApp_vars.joinedSem, // joinedSem BANDWIDTH_NONE, // bandwidth NULL // serviceSem ); //===== create the SPI task osErr = OSTaskCreateExt( spiTask, (void *)0, (OS_STK*)(&spiNetApp_vars.spiTaskStack[TASK_APP_SPI_STK_SIZE-1]), TASK_APP_SPI_PRIORITY, TASK_APP_SPI_PRIORITY, (OS_STK*)spiNetApp_vars.spiTaskStack, TASK_APP_SPI_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR ); ASSERT(osErr == OS_ERR_NONE); OSTaskNameSet(TASK_APP_SPI_PRIORITY, (INT8U*)TASK_APP_SPI_NAME, &osErr); ASSERT(osErr == OS_ERR_NONE); return 0; }
/** * @brief start tcpserver */ void tcpserver_init() { CPU_INT08U os_err; OSTaskCreate(tcpserver_thread, NULL, &TcpServerStack[TCPSERVER_STK_SIZE - 1], LWIP_TCPSERVER_PRIO ); #if (OS_TASK_NAME_SIZE >= 11) OSTaskNameSet(LWIP_TCPSERVER_PRIO, (CPU_INT08U *)"tcpserver", &os_err); #endif }