15.1.2.26 user_init

The user_init attribute may be applied to any non-interrupt function with void parameter and return types. Applying this attribute will cause default C start-up modules to call this function before the user main is executed. There is no guarantee of ordering, so these functions cannot rely on other user_init functions having been previously run; these functions will be called after PSV and data initialization. A user_init may still be called by the executing program. For example:

 void __attribute__((user_init)) initialize_me(void) {
 // perform initalization sequence alpha alpha beta
 }