18.1 The Main Function
The identifier main() is reserved as the entry point for
         application code. The start-up code for the device will call main() after
         performing all other initialization steps. Upon returning from the main()
         function, control returns to the start-up function and will enter an infinite loop. Calling
         the standard exit or abort functions will also cause
         execution to enter an infinite loop. The return value of main() is not
         used by the start-up function.
