I am following below method to sync my external RTC with internal timer.
Incrementing epoch millliseconds from vTickISR.
But i want to sync my epoch milliseconds with external RTC just after my system startsup.
But vTickISR is called when FreeRTOS scheduler is started so i have to wait till scheduler is started.
Is there any function in FreeRTOS that can tell me that scheduler is started so that once scheduler is started
i can sync my epcohms with RTC and it keep on incrementing just after syncing.
pragma interrupt ( vTickISR( vect = VECT( configTICKVECTOR ), enable ) )
void vTickISR( void )
/ Increment the tick, and perform any processing the new tick value
///increment epoch seconds
setipl( configMAXSYSCALLINTERRUPTPRIORITY );
if( xTaskIncrementTick() != pdFALSE )
setipl( configKERNELINTERRUPTPRIORITY );
Look at line 552 (at the time of writing) in the following file.
If you set configUSEDAEMONTASKSTARTUPHOOK to 1 you must provide an
void vApplicationDaemonTaskStartupHook( void );
Assuming the timer task is the highest priority task in the system -
which is normally the case - then vApplicationDaemonTaskStartupHook()
will get called once when the first task starts executing.
Does that meet your needs?