int main(void){ MainQueue = OSQCreate(&QueueBaseAddress[0], QUEUE_SIZE); OSTaskCreateExt(Encoder_Task, NULL, (void *)&task1_stk[TASK_STACKSIZE-1], TASK1_PRIORITY, TASK1_PRIORITY, task1_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(PWM_Task, NULL, (void *)&task2_stk[TASK_STACKSIZE-1], TASK2_PRIORITY, TASK2_PRIORITY, task2_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(ADC_Task, NULL, (void *)&task3_stk[TASK_STACKSIZE-1], TASK3_PRIORITY, TASK3_PRIORITY, task3_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(LSM303_Task, NULL, (void *)&task4_stk[TASK_STACKSIZE-1], TASK4_PRIORITY, TASK4_PRIORITY, task4_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(Navigation_Task, NULL, (void *)&task5_stk[TASK_STACKSIZE-1], TASK5_PRIORITY, TASK5_PRIORITY, task5_stk, TASK_STACKSIZE, NULL, 0); //OS_Start(); return 0; // LSM303_Init(); //enableDefault(); }
/** \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 }
/********************************* uCOS�������� *************************************/ void TaskStart(void *pdata) { stm32_crc_init(); OSTaskCreateExt(Display_Task, (void *)0, &Task_Display_Stk[Task_Display_Stk_Size - 1], Task_Display_Prio, Task_Display_Prio, &Task_Display_Stk[0], Task_Display_Stk_Size, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreateExt(TaskADC, (void *)0, &Task_ADC_Stk[Task_ADC_Stk_Size - 1], Task_ADC_Prio, Task_ADC_Prio, Task_ADC_Stk, Task_ADC_Stk_Size, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreateExt(Keyboard_Task, (void *)0, &Task_Key_Stk[Task_Key_Stk_Size - 1], Task_Key_Prio, Task_Key_Prio, &Task_Key_Stk[0], Task_Key_Stk_Size, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreateExt(RC_Bus_Task, (void *)0, &Task_RCBus_Stk[Task_RCBus_Stk_Size - 1], Task_RCBus_Prio, Task_RCBus_Prio, &Task_RCBus_Stk[0], Task_RCBus_Stk_Size, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreateExt(TaskUSBHID, (void *)0, &Task_USBHID_Stk[Task_USBHID_Stk_Size - 1], Task_USBHID_Prio, Task_USBHID_Prio, &Task_USBHID_Stk[0], Task_USBHID_Stk_Size, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskDel(OS_PRIO_SELF); }
/* ********************************************************************************************************* * 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 }
/* The main function creates the LCD task, registers the edge counter polling interrupt, * and starts the OS. */ int main(void) { int status; // Initialize components. queue_init(); // Create the IR task. OSTaskCreateExt(ir_task, NULL, &ir_task_stk[TASK_STACKSIZE - 1], IR_TASK_PRIORITY, IR_TASK_PRIORITY, ir_task_stk, TASK_STACKSIZE, NULL, 0); // Create the Wifi task. OSTaskCreateExt(wifi_task, NULL, &wifi_task_stk[TASK_STACKSIZE - 1], WIFI_TASK_PRIORITY, WIFI_TASK_PRIORITY, wifi_task_stk, TASK_STACKSIZE, NULL, 0); // Create the MC task. OSTaskCreateExt(mc_task, NULL, &mc_task_stk[TASK_STACKSIZE - 1], MC_TASK_PRIORITY, MC_TASK_PRIORITY, mc_task_stk, TASK_STACKSIZE, NULL, 0); // Register the IR pushbutton interrupt. status = alt_ic_isr_register(PIO_KEY_LEFT_IRQ_INTERRUPT_CONTROLLER_ID, PIO_KEY_LEFT_IRQ, isr_on_ir_pushbutton, NULL, NULL); // Enable key interrupts. IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_KEY_LEFT_BASE, PIO_KEY_LEFT_CAPTURE); // Start. if (status == OK) { OSStart(); } return 0; }
int main(void) { OSInit(); volatile short * pixel_ctrl_ptr = pixel_buffer_start; volatile char * char_ctrl_ptr = character_buffer; int err = ALT_SEM_CREATE(&display,1); if(err != 0) printf("Semaphore not created\n"); err = ALT_SEM_CREATE(&audio,1); if(err != 0) printf("Semaphore not created\n"); *(dma_control) &= (1<<2); //Enable DMA controller clearscreen(pixel_ctrl_ptr); drawbox(pixel_ctrl_ptr, 34*4, 9*4, 48, 10,0xFA01); wait_for_vsync(buffer_register,dma_control); OSTaskCreateExt(task1, pixel_ctrl_ptr, (void *)&task1_stk[TASK_STACKSIZE-1], TASK1_PRIORITY, TASK1_PRIORITY, task1_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(task2, char_ctrl_ptr, (void *)&task2_stk[TASK_STACKSIZE-1], TASK2_PRIORITY, TASK2_PRIORITY, task2_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(getcontrols, char_ctrl_ptr, (void *)&getcontrols_stk[TASK_STACKSIZE-1], GETCONTROLS_PRIORITY, GETCONTROLS_PRIORITY, getcontrols_stk, TASK_STACKSIZE, NULL, 0); OSStart(); return 0; }
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); }
/* The main function creates two task and starts multi-tasking */ int main(void) { task t1 = {4,60}; // CPU exec, Period task t2 = {1,70}; task t3 = {2,80}; INT8U err; OSInit(); OSTaskCreateExt(task1, &t1, (void *)&task1_stk[TASK_STACKSIZE-1], TASK1_PRIORITY, TASK1_PRIORITY, task1_stk, TASK_STACKSIZE, NULL, 0, t1.period); OSTaskCreateExt(task2, &t2, (void *)&task2_stk[TASK_STACKSIZE-1], TASK2_PRIORITY, TASK2_PRIORITY, task2_stk, TASK_STACKSIZE, NULL, 0, t2.period); OSTaskCreateExt(task3, &t3, (void *)&task3_stk[TASK_STACKSIZE-1], TASK3_PRIORITY, TASK3_PRIORITY, task3_stk, TASK_STACKSIZE, NULL, 0, t3.period); R1 = OSMutexCreate(R1_PRIO, &err); R2 = OSMutexCreate(R2_PRIO, &err); printf("====== SRP Task Set 2 { t1(9,60), t2(3,70), t3(0,80) } (Arrival,Period) ======\n"); printf("------------------------------------------------------------------------------\n"); printf("Current Time Event System Ceiling \n"); printf("------------------------------------------------------------------------------\n"); OSTimeSet(0); OSStart(); return 0; }
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 }
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; }
static void WSCreateTasks() { INT8U error_code = OS_NO_ERR; /* Start LED Task. */ error_code = OSTaskCreateExt(LED_task, NULL, (void *)&LEDTaskStk[TASK_STACKSIZE-1], LED_PRIO, LED_PRIO, LEDTaskStk, TASK_STACKSIZE, NULL, 0); alt_uCOSIIErrorHandler(error_code, 0); /* Start SSD Task. */ #ifdef SEG7_NAME error_code = OSTaskCreateExt(SSD_task, NULL, (void *)&SSDTaskStk[TASK_STACKSIZE-1], SSD_PRIO, SSD_PRIO, SSDTaskStk, TASK_STACKSIZE, NULL, 0); alt_uCOSIIErrorHandler(error_code, 0); #endif /* Start Board Control Task. */ error_code = OSTaskCreateExt(board_control_task, NULL, (void *)&BCTaskStk[TASK_STACKSIZE-1], BOARD_PRIO, BOARD_PRIO, BCTaskStk, TASK_STACKSIZE, NULL, 0); alt_uCOSIIErrorHandler(error_code, 0); /* Suspend both the LED and SSD tasks on start. */ OSTaskSuspend(LED_PRIO); OSTaskSuspend(SSD_PRIO); /* The web server task is started by the Interniche stack, as the "main" network servicing task. */ }
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 }
/* The main function creates two task and starts multi-tasking */ int main(void) { alt_printf("*********************************************\n"); alt_printf("* Running MicroC OS on the DE0-nano Board *\n"); alt_printf("*********************************************\n"); OSTaskCreateExt(task1, NULL, (void *)&task1_stk[TASK_STACKSIZE-1], TASK1_PRIORITY, TASK1_PRIORITY, task1_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(task2, NULL, (void *)&task2_stk[TASK_STACKSIZE-1], TASK2_PRIORITY, TASK2_PRIORITY, task2_stk, TASK_STACKSIZE, NULL, 0); OSStart(); return 0; }
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_EN > 0 OSTaskNameSet(APP_START_TASK1_PRIO, "Task 1", &err); #endif OSTaskCreateExt(AppTask2, /* Create start task 2 */ (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_EN > 0 OSTaskNameSet(APP_START_TASK2_PRIO, "Task 2", &err); #endif OSTaskCreateExt(AppTask3, /* Create start task 3 */ (void *)0, (OS_STK *)&AppTask3Stk[APP_TASK3_STK_SIZE - 1], APP_START_TASK3_PRIO, APP_START_TASK3_PRIO, (OS_STK *)&AppTask3Stk[0], APP_TASK3_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); #if OS_TASK_NAME_EN > 0 OSTaskNameSet(APP_START_TASK3_PRIO, "Task 3", &err); #endif }
int main (int argc, char* argv[], char* envp[]) { INT8U error_code; /* Clear the RTOS timer */ OSTimeSet(0); /* SSSInitialTask will initialize the NicheStack * TCP/IP Stack and then initialize the rest of the Nios II Simple Socket Server example * RTOS structures and tasks. */ error_code = OSTaskCreateExt(SSSInitialTask, NULL, (void *)&SSSInitialTaskStk[TASK_STACKSIZE], SSS_INITIAL_TASK_PRIORITY, SSS_INITIAL_TASK_PRIORITY, SSSInitialTaskStk, TASK_STACKSIZE, NULL, 0); alt_uCOSIIErrorHandler(error_code, 0); /* * As with all MicroC/OS-II designs, once the initial thread(s) and * associated RTOS resources are declared, we start the RTOS. That's it! */ OSStart(); while(1); /* Correct Program Flow never gets here. */ return -1; }
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) */ }
/* The main function creates three task and starts multitasking */ int main(void) { OSInit(); SWQ = OSQCreate(SWQ_stk, TASK_STACKSIZE); RS232Q = OSQCreate(RS232Q_stk, TASK_STACKSIZE); OSTaskCreateExt(taskLCD, NULL, (void *) &taskLCD_stk[TASK_STACKSIZE - 1], TASKLCD_PRIORITY, TASKLCD_PRIORITY, taskLCD_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(taskSW, NULL, (void *) &taskSW_stk[TASK_STACKSIZE - 1], TASKSW_PRIORITY, TASKSW_PRIORITY, taskSW_stk, TASK_STACKSIZE, NULL, 0); OSTaskCreateExt(taskRS232, NULL, (void *) &taskRS232_stk[TASK_STACKSIZE - 1], TASKRS232_PRIORITY, TASKRS232_PRIORITY, taskRS232_stk, TASK_STACKSIZE, NULL, 0); OSStart(); return 0; }
/* ********************************************************************************************************* * MAIN ********************************************************************************************************* */ int main (void) { OSInit(); /* Initialize uC/OS-II */ OSTaskCreateExt(Task_Start, (void *)0, &TASK_START_STK[127], TASK_START_PRIO, TASK_START_ID, &TASK_START_STK[0], 300, (void *)0,//&TaskUserData[TASK_4_ID] 0); RecPackedFlag= OSSemCreate(0); RecBufOverFlowFlag= OSSemCreate(0); RecTcpPackedFlag= OSSemCreate(0); RecPingPackedFlag= OSSemCreate(0); SendFlag= OSSemCreate(1); RecIcmpQFlag= OSQCreate(&RecIcmpQ[0],Q_Max_Size); RecTcpQFlag= OSQCreate(&RecTcpQ[0],Q_Max_Size); RecUdpQFlag= OSQCreate(&RecUdpQ[0],Q_Max_Size); OSStart(); /* Start multitasking */ }
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); }
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; }
/*********************************************************************//** * @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 // 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); }
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); }
/* ********************************************************************************************************* * 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) { 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 */ }
static void App_TaskCreate(void) { CPU_INT08U os_err; OSTaskCreateExt(AppTaskUserIF,(void *)0,(OS_STK *)&AppTaskUserIFStk[APP_TASK_USER_IF_STK_SIZE-1],APP_TASK_USER_IF_PRIO,APP_TASK_USER_IF_PRIO,(OS_STK *)&AppTaskUserIFStk[0], APP_TASK_USER_IF_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR); // OSTaskCreateExt(AppTaskController,(void *)0,(OS_STK *)&AppTaskControllerStk[APP_TASK_CONTROLLER_STK_SIZE-1],APP_TASK_CONTROLLER_PRIO,APP_TASK_CONTROLLER_PRIO,(OS_STK *)&AppTaskControllerStk[0], // APP_TASK_CONTROLLER_STK_SIZE, // (void *)0, // OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR); // os_err = OSTaskCreate((void (*) (void *)) App_TaskLCD, (void *) 0, // (OS_STK *) &App_TaskLCDStk[APP_TASK_LCD_STK_SIZE - 1], // (INT8U) APP_TASK_LCD_PRIO); // printf("Creat App_TaskLCDЈЎ\r\n"); //#if (OS_TASK_NAME_SIZE >= 9) // OSTaskNameSet(APP_TASK_LCD_PRIO, "LCD", &os_err); //#endif // os_err = OSTaskCreate((void (*) (void *)) App_TaskKbd, (void *) 0, // (OS_STK *) &App_TaskKbdStk[APP_TASK_KBD_STK_SIZE - 1], // (INT8U) APP_TASK_KBD_PRIO); // printf("Creat App_TaskKbdЈЎ\r\n"); }
void start_task(void *pdata) { OS_CPU_SR cpu_sr = 0; pdata = pdata; delay_init(168); OS_ENTER_CRITICLE(); //进入临界区 无法被中断打断 OSTaskCreate( led0Task, (void *)0, (OS_STK *)LED0_TASK_STK[LED0_STK_SIZE-1], LED0_TASK_PRIO);//创建LED任务 // OSTaskCreate( beepTask, (void *)0, // (OS_STK *)BEEP_TASK_STK[BEEP_STK_SIZE-1], // BEEP_TASK_PRIO);//创建BEEP任务 //用OSTaskCreateExt改写 OSTaskCreateExt( beepTask, (void *)0, (OS_STK *)BEEP_TASK_STK[BEEP_STK_SIZE-1], BEEP_TASK_PRIO, BEEP_TASK_PRIO,//ID设置为跟优先级一样 (OS_STK *)BEEP_TASK_STK[0],//栈底指针 BEEP_STK_SIZE,//堆栈大小 (void *) 0,//额外参数为空 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR//使用任务堆栈检查和清零功能 ) OSTaskSuspend(START_TASK_PRIO);//挂起起始任务 OS_EXIT_CRITICLE(); //退出临界区 可以被中断打断 }
/* 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; }