fix(ota): bypass 64KB flash block erase, increase WDT timeouts, and place encoder table in DRAM
All checks were successful
ESP32 Build & Release / build (push) Successful in 1m11s

This commit is contained in:
2026-09-12 15:52:12 +02:00
parent c3bc42fe94
commit 6b8e8f3e8d
5 changed files with 40 additions and 2 deletions

View File

@@ -11,6 +11,7 @@
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#include "esp_attr.h"
#include "driver/gpio.h"
#include "hw_pins.h"
#include "encoder.h"
@@ -41,8 +42,11 @@ static volatile int8_t s_steps_per_detent = 4; /* 4 = full-step, 2 = half-step *
*
* All bounces (e.g. 11 <-> 01) cancel out: +1 + (-1) = 0.
* Invalid diagonal skips (00 <-> 11, 01 <-> 10): 0.
*
* Placed in DRAM_ATTR so reading it during flash erase (when cache is disabled)
* does not trigger a Cache Disabled DoubleException.
*/
static const int8_t s_quad_table[16] = {
static const DRAM_ATTR int8_t s_quad_table[16] = {
[0] = 0,
[1] = -1, // 00 -> 01 (CCW)
[2] = 1, // 00 -> 10 (CW)