/** * Tau Labs Main function: * * Initialize PiOS<BR> * Create the "System" task (SystemModInitializein Modules/System/systemmod.c) <BR> * Start FreeRTOS Scheduler (vTaskStartScheduler)<BR> * If something goes wrong, blink LED1 and LED2 every 100ms * */ int main() { int result; /* NOTE: Do NOT modify the following start-up sequence */ /* Any new initialization functions should be added in OpenPilotInit() */ vPortInitialiseBlocks(); /* Brings up System using CMSIS functions, enables the LEDs. */ PIOS_SYS_Init(); /* For Revolution we use a FreeRTOS task to bring up the system so we can */ /* always rely on FreeRTOS primitive */ result = xTaskCreate(initTask, (const signed char *)"init", INIT_TASK_STACK, NULL, INIT_TASK_PRIORITY, &initTaskHandle); PIOS_Assert(result == pdPASS); /* Start the FreeRTOS scheduler */ vTaskStartScheduler(); /* If all is well we will never reach here as the scheduler will now be running. */ /* Do some PIOS_LED_HEARTBEAT to user that something bad just happened */ PIOS_LED_Off(PIOS_LED_HEARTBEAT); \ for(;;) { \ PIOS_LED_Toggle(PIOS_LED_HEARTBEAT); \ PIOS_DELAY_WaitmS(100); \ }; return 0; }
void MPU_vPortInitialiseBlocks( void ) { portBASE_TYPE xRunningPrivileged = prvRaisePrivilege(); vPortInitialiseBlocks(); portRESET_PRIVILEGE( xRunningPrivileged ); }
void MPU_vPortInitialiseBlocks( void ) { BaseType_t xRunningPrivileged = prvRaisePrivilege(); vPortInitialiseBlocks(); portRESET_PRIVILEGE( xRunningPrivileged ); }
void MPU_vPortInitialiseBlocks( void ) { BaseType_t xRunningPrivileged = xPortRaisePrivilege(); vPortInitialiseBlocks(); vPortResetPrivilege( xRunningPrivileged ); }
/* Creates the tasks, then starts the scheduler. */ void main( void ) { /* Initialise the required hardware. */ vParTestInitialise(); vPortInitialiseBlocks(); /* Send a character so we have some visible feedback of a reset. */ xSerialPortInitMinimal( mainBAUD_RATE, mainCOMMS_QUEUE_LENGTH ); xSerialPutChar( NULL, 'X', mainNO_BLOCK ); /* Start the standard LED flash tasks as defined in demo/common/minimal. */ vStartLEDFlashTasks( mainLED_FLASH_PRIORITY ); /* Start the check task defined in this file. */ xTaskCreate( vCalculationTask, "Check", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); /* Start the scheduler. */ vTaskStartScheduler(); }
/* Creates the tasks, then starts the scheduler. */ void main( void ) { /* Initialise the required hardware. */ vParTestInitialise(); vPortInitialiseBlocks(); /* Send a character so we have some visible feedback of a reset. */ xSerialPortInitMinimal( mainBAUD_RATE, mainCOMMS_QUEUE_LENGTH ); xSerialPutChar( NULL, 'X', mainNO_BLOCK ); /* Start the standard demo tasks found in the demo\common directory. */ vStartIntegerMathTasks( tskIDLE_PRIORITY ); vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); /* Start the check task defined in this file. */ xTaskCreate( vErrorChecks, ( const char * const ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL ); /* Start the scheduler. Will never return here. */ vTaskStartScheduler(); }
/* Creates the tasks, then starts the scheduler. */ void main( void ) { /* Initialise the required hardware. */ vParTestInitialise(); /* Initialise the block memory allocator. */ vPortInitialiseBlocks(); /* Start the standard comtest tasks as defined in demo/common/minimal. */ vAltStartComTestTasks( mainCOMM_TEST_PRIORITY, mainBAUD_RATE, mainCOMM_TX_RX_LED ); /* Start the standard 32bit calculation task as defined in demo/common/minimal. */ vStartIntegerMathTasks( tskIDLE_PRIORITY ); /* Start the check task defined in this file. */ xTaskCreate( vErrorChecks, ( const char * const ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL ); /* Start the scheduler. This will never return. */ vTaskStartScheduler(); }