From 3092da23ed9e040432791940f23c1713cacb7058 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 22 Sep 2022 19:24:07 +0200 Subject: [PATCH] card_init_core1() shall be called from every thread launched on core1. Signed-off-by: Pol Henarejos --- src/apdu.c | 1 + src/usb/usb.c | 5 ++--- src/usb/usb.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) 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