main(void)
{
ao_clock_init();
+ ao_task_init();
+ ao_cmd_init();
+ ao_config_init();
-#if HAS_STACK_GUARD
- ao_mpu_init();
-#endif
+ ao_led_init();
+ ao_led_on(LEDS_AVAILABLE);
- ao_task_init();
+ /* internal systems */
ao_timer_init();
-
- ao_spi_init();
+ ao_dma_init();
ao_exti_init();
- ao_storage_init();
-
+ /* SoC hardware */
+ ao_adc_init();
ao_serial_init();
-
- ao_cmd_init();
-
+ ao_spi_init();
ao_usb_init();
- ao_radio_init();
-
-#if HAS_ADC
- ao_adc_init();
-#endif
+ /* External hardware */
+ ao_storage_init();
+ ao_radio_init();
ao_gps_init();
-#if HAS_LOG
- ao_log_init();
-#endif
-
- ao_tracker_init();
+ /* Services */
+ ao_log_init();
ao_telemetry_init();
+ ao_tracker_init();
-#if HAS_SAMPLE_PROFILE
- ao_sample_profile_init();
-#endif
- ao_config_init();
+ ao_led_off(LEDS_AVAILABLE);
ao_start_scheduler();
- return 0;
}