3.3 The main() Function
The 
main() function serves as the starting point for a user application. The user’s application defines the body of the main() function to increase development flexibility. The main() function must include two essential elements: - A call to the 
SYS_Initialize(NULL)function - It must execute an infinite loop that contains 
SYS_Tasks(), allowing the task scheduler (for example, FreeRTOS) to invoke the next appropriate task handler. 
The following code is a typical example of how to implement the main() function:
int main ( void )
{
  /* Initialize all modules */
    SYS_Initialize ( NULL );
  
    while ( true )
    {
        /* Maintain state machines of all polled MPLAB Harmony modules. */
        SYS_Tasks ( );
    }
    /* Execution should not come here during normal operation */
    return ( EXIT_FAILURE );
}