diff --git a/src/apdu.c b/src/apdu.c index c04d825..c78d7c5 100644 --- a/src/apdu.c +++ b/src/apdu.c @@ -204,7 +204,7 @@ done: ; void apdu_finish() { apdu.rdata[apdu.rlen] = apdu.sw >> 8; apdu.rdata[apdu.rlen + 1] = apdu.sw & 0xff; - timeout_stop(); + //timeout_stop(); #ifndef ENABLE_EMULATION if ((apdu.rlen + 2 + 10) % 64 == 0) { // FIX for strange behaviour with PSCS and multiple of 64 apdu.ne = apdu.rlen - 2; diff --git a/src/main.c b/src/main.c index d06c1c0..af79f6b 100644 --- a/src/main.c +++ b/src/main.c @@ -323,7 +323,7 @@ int main(void) { neug_task(); do_flash(); #ifndef ENABLE_EMULATION - if (board_millis() > 1000 && !is_busy()) { // wait 1 second to boot up + if (board_millis() > 5000 && !is_busy()) { // wait 5 second to boot up bool current_button_state = board_button_read(); if (current_button_state != button_pressed_state) { if (current_button_state == false) { // unpressed diff --git a/src/usb/usb.c b/src/usb/usb.c index 4c123e1..483a0bb 100644 --- a/src/usb/usb.c +++ b/src/usb/usb.c @@ -280,7 +280,6 @@ void usb_task() { // printf("\r\n ------ M = %lu\r\n",m); if (has_m) { if (m == EV_EXEC_FINISHED) { - timeout_stop(); #ifdef USB_ITF_HID if (itf == ITF_HID) { driver_exec_finished_hid(finished_data_size); @@ -293,6 +292,7 @@ void usb_task() { #endif led_set_blink(BLINK_MOUNTED); card_locked_itf = ITF_TOTAL; + timeout_stop(); } else if (m == EV_PRESS_BUTTON) { uint32_t flag = wait_button() ? EV_BUTTON_TIMEOUT : EV_BUTTON_PRESSED;