Example #1
0
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();
}
Example #2
0
/**
\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;
}
Example #3
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
}
Example #4
0
/********************************* 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);
}
Example #5
0
/*
*********************************************************************************************************
*                                      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
}
Example #6
0
/* 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;
}
Example #7
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;
}
Example #8
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);
}
Example #9
0
/* 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;
}
Example #10
0
File: os_view.c Project: flyoo/gprs
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
}
Example #11
0
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. */
  
}
Example #13
0
File: TEST.C Project: voileravi/zen
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
}
Example #15
0
/* 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;
}
Example #16
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                    
}
Example #17
0
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;
}
Example #18
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)       */
}
Example #19
0
/* 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;
}
Example #20
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                       */
}
Example #21
0
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);                                                        
}
Example #22
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;
}
Example #23
0
/*********************************************************************//**
 * @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



}
Example #24
0
File: main.c Project: Mazetti/asf
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);
}
Example #25
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);
}
Example #26
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               */
}
Example #28
0
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");
}
Example #29
0
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();		//退出临界区 可以被中断打断

	

}
Example #30
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(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;
}