diff --git a/src/apdu.c b/src/apdu.c index f726012..dfa0b0e 100644 --- a/src/apdu.c +++ b/src/apdu.c @@ -127,6 +127,7 @@ uint16_t set_res_sw(uint8_t sw1, uint8_t sw2) { void apdu_thread() { + card_init_core1(); while (1) { uint32_t m; queue_remove_blocking(&usb_to_card_q, &m); diff --git a/src/usb/usb.c b/src/usb/usb.c index 3e19790..099880f 100644 --- a/src/usb/usb.c +++ b/src/usb/usb.c @@ -150,15 +150,14 @@ static int usb_event_handle() { } extern void low_flash_init(); -static void card_init_core1(void) { - low_flash_init(); +void card_init_core1() { + low_flash_init_core1(); } size_t finished_data_size = 0; void card_start(void (*func)(void)) { multicore_reset_core1(); - card_init_core1(); multicore_launch_core1(func); led_set_blink(BLINK_MOUNTED); } diff --git a/src/usb/usb.h b/src/usb/usb.h index 28c5281..238b7b7 100644 --- a/src/usb/usb.h +++ b/src/usb/usb.h @@ -58,5 +58,6 @@ extern uint32_t usb_write_offset(uint16_t len, uint16_t offset); extern void usb_clear_rx(); extern size_t finished_data_size; extern void usb_set_timeout_counter(uint32_t v); +extern void card_init_core1(); #endif