diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c index f753d85a0da4dc16496ad1d8e382e9a0e84bbfb6..a93c8c6d67447cb84bf3ee4ba522809a842b52dc 100644 --- a/epicardium/modules/hardware.c +++ b/epicardium/modules/hardware.c @@ -173,6 +173,24 @@ int hardware_init(void) */ int hardware_reset(void) { - card10_init(); + /* + * API Dispatcher & API Interrupts + */ + api_interrupt_init(); + api_dispatcher_init(); + + /* + * LEDs + */ + leds_init(); + epic_leds_set_rocket(0, 0); + epic_leds_set_rocket(1, 0); + epic_leds_set_rocket(2, 0); + + /* + * Display + */ + display_init_slim(); + return 0; } diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c index b3ce83c1862b09ea4f2e095c1031f67357bce982..992b0d5ff0f4a5d1c84808374e44baecc54cd3d5 100644 --- a/epicardium/modules/lifecycle.c +++ b/epicardium/modules/lifecycle.c @@ -114,10 +114,12 @@ static int do_load(struct load_info *info) core1_wait_ready(); /* - * Reinitialize API + * Reinitialize Hardware & Drivers */ - api_dispatcher_init(); - api_interrupt_init(); + res = hardware_reset(); + if (res < 0) { + return res; + } switch (info->type) { case PL_PYTHON_SCRIPT: