From c7e77ccd36f7eed481f273d7831f81b7d69c6085 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Wed, 14 Sep 2022 03:58:01 +0200 Subject: [PATCH] fix(mpm): update internal module (#2314) * Internal MPM update: UART context must be removed last This fixes the crash / reboot observed in issue #2310 * Fix DMA fifo clear() method --- radio/src/dmafifo.h | 2 +- radio/src/io/multi_firmware_update.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/dmafifo.h b/radio/src/dmafifo.h index db0d885d5..837dfd2da 100644 --- a/radio/src/dmafifo.h +++ b/radio/src/dmafifo.h @@ -36,7 +36,7 @@ class DMAFifo void clear() { - ridx = 0; + ridx = N - stream->NDTR; } uint32_t size() diff --git a/radio/src/io/multi_firmware_update.cpp b/radio/src/io/multi_firmware_update.cpp index ba4932728..312b5f01b 100644 --- a/radio/src/io/multi_firmware_update.cpp +++ b/radio/src/io/multi_firmware_update.cpp @@ -122,8 +122,8 @@ class MultiInternalUpdateDriver: public MultiFirmwareUpdateDriver void deinit(bool inverted) override { IntmoduleSerialDriver.deinit(uart_ctx); - uart_ctx = nullptr; clear(); + uart_ctx = nullptr; } }; #endif