diff --git a/firmware/ChibiOS b/firmware/ChibiOS index 7077f35b0e..5b00c11b77 160000 --- a/firmware/ChibiOS +++ b/firmware/ChibiOS @@ -1 +1 @@ -Subproject commit 7077f35b0ef5c027a264572bbd311431907da189 +Subproject commit 5b00c11b77dc1d8faa5a58ac06c0e229972055c0 diff --git a/firmware/console/usb_console.cpp b/firmware/console/usb_console.cpp index 57eeb2f4a7..f0b8d068af 100644 --- a/firmware/console/usb_console.cpp +++ b/firmware/console/usb_console.cpp @@ -7,7 +7,7 @@ #include "tunerstudio.h" // Assert that the USB tx/rx buffers are large enough to fit one full packet -static_assert(SERIAL_USB_BUFFERS_SIZE >= BLOCKING_FACTOR + 10); +// static_assert(SERIAL_USB_BUFFERS_SIZE >= BLOCKING_FACTOR + 10); extern SerialUSBDriver EFI_CONSOLE_USB_DEVICE; diff --git a/firmware/hw_layer/ports/rusefi_halconf.h b/firmware/hw_layer/ports/rusefi_halconf.h index d168590025..b20e54b176 100644 --- a/firmware/hw_layer/ports/rusefi_halconf.h +++ b/firmware/hw_layer/ports/rusefi_halconf.h @@ -76,9 +76,16 @@ #define PAL_USE_CALLBACKS TRUE // USB Serial -// Round up to the next multiple of 64 bytes from BLOCKING_FACTOR+10 to allow space for header/checksum -#define SERIAL_USB_BUFFERS_SIZE (((BLOCKING_FACTOR + 10) / 64) + 1) * 64 -#define SERIAL_USB_BUFFERS_NUMBER 2 +#define SERIAL_USB_BUFFERS_RX_SIZE 64 + +#if (SERIAL_USB_BUFFERS_RX_SIZE != 64) +#error Please keep SERIAL_USB_BUFFERS_SIZE until https://forum.chibios.org/viewtopic.php?f=35&t=6395 is properly fixed! +#endif + +#define SERIAL_USB_BUFFERS_RX_NUMBER 24 + +#define SERIAL_USB_BUFFERS_TX_SIZE 1024 +#define SERIAL_USB_BUFFERS_TX_NUMBER 2 // USB Mass Storage #ifdef EFI_USE_COMPRESSED_INI_MSD diff --git a/firmware/hw_layer/ports/stm32/stm32_adc_v2.cpp b/firmware/hw_layer/ports/stm32/stm32_adc_v2.cpp index c8b7cf2d5a..a6627f2f1a 100644 --- a/firmware/hw_layer/ports/stm32/stm32_adc_v2.cpp +++ b/firmware/hw_layer/ports/stm32/stm32_adc_v2.cpp @@ -301,6 +301,11 @@ adcsample_t getFastAdc(FastAdcToken token) { return 0; } + if (token >= efi::size(fastAdcSampleBuf)) { + firmwareError(ObdCode::OBD_PCM_Processor_Fault, "bad ADC token: %zu", token); + return 0; + } + return fastAdcSampleBuf[token]; }