void main(void) { prvSetupHardware(); /* Start the HTTP server task. */ xTaskCreate( vHTTPTask, "WizNet", configMINIMAL_STACK_SIZE, NULL, mainHTTP_TASK_PRIORITY, NULL ); /* Start the demo/test application tasks. See the demo application section of the FreeRTOS.org WEB site for more information. */ vStartIntegerMathTasks( tskIDLE_PRIORITY ); vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); vStartDynamicPriorityTasks(); vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); vStartComTestTasks( mainCOM_TEST_PRIORITY, serCOM2, ser57600 ); /* Start the task that checks the other demo tasks for errors. */ xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL ); /* The suicide tasks must be created last as they monitor the number of tasks in the system to ensure there are no more or fewer than expected compared to the number that were executing when the task started. */ vCreateSuicidalTasks( mainSUICIDE_TASKS_PRIORITY ); /* Finally start the scheduler. */ vTaskStartScheduler(); /* Should not get here! */ for( ;; ); }
/*-----------------------------------------------------------*/ short main( void ) { /* Initialise hardware and utilities. */ vParTestInitialise(); vPrintInitialise(); prvInitLED(); /* CREATE ALL THE DEMO APPLICATION TASKS. */ vStartComTestTasks( mainCOM_TEST_PRIORITY, serCOM2, ser38400 ); vStartIntegerMathTasks( tskIDLE_PRIORITY ); vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); vStartBlockingQueueTasks( mainQUEUE_BLOCK_PRIORITY ); vStartLEDFlashTasks( mainLED_TASK_PRIORITY ); vStartSemaphoreTasks( mainSEMAPHORE_TASK_PRIORITY ); /* Create the "Print" task as described at the top of the file. */ xTaskCreate( vErrorChecks, "Print", mainPRINT_STACK_SIZE, NULL, mainPRINT_TASK_PRIORITY, NULL ); /* This task has to be created last as it keeps account of the number of tasks it expects to see running. */ vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); /* Set the scheduler running. This function will not return unless a task calls vTaskEndScheduler(). */ vTaskStartScheduler(); return 1; }
short main( void ) { /* Initialise hardware and utilities. */ vParTestInitialise(); vPrintInitialise(); /* CREATE ALL THE DEMO APPLICATION TASKS. */ prvStartMathTasks(); vStartComTestTasks( mainCOM_TEST_PRIORITY, serCOM1, ser115200 ); vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); vStartBlockingQueueTasks( mainQUEUE_BLOCK_PRIORITY ); vCreateBlockTimeTasks(); vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY ); vStartSemaphoreTasks( mainSEMAPHORE_TASK_PRIORITY ); vStartDynamicPriorityTasks(); vStartMultiEventTasks(); vStartQueuePeekTasks(); vStartCountingSemaphoreTasks(); vStartAltGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY ); vCreateAltBlockTimeTasks(); vStartAltBlockingQueueTasks( mainQUEUE_BLOCK_PRIORITY ); vStartAltPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); vStartRecursiveMutexTasks(); /* Create the "Print" task as described at the top of the file. */ xTaskCreate( vErrorChecks, "Print", mainPRINT_STACK_SIZE, NULL, mainPRINT_TASK_PRIORITY, NULL ); /* This task has to be created last as it keeps account of the number of tasks it expects to see running. */ vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); /* Create the co-routines that flash the LED's. */ vStartFlashCoRoutines( mainNUM_FLASH_CO_ROUTINES ); /* Create the co-routines that communicate with the tick hook. */ vStartHookCoRoutines(); /* Set the scheduler running. This function will not return unless a task calls vTaskEndScheduler(). */ vTaskStartScheduler(); return 1; }