From 4861d26d8a60e428d11489049d69add537af0e85 Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Tue, 7 Oct 2025 00:29:04 +0200 Subject: [PATCH] better --- Firmware/main/CMakeLists.txt | 4 +- Firmware/main/include/disp_tools.hpp | 23 +- Firmware/main/include/display.hpp | 57 ++- .../{hello_world_main.cpp => app_main.cpp} | 302 ++++++++++++-- Firmware/main/src/disp_tools.cpp | 6 - Firmware/main/src/disp_tty.cpp | 4 +- Firmware/main/src/display.cpp | 16 +- Firmware/sdkconfig | 44 +- Firmware/sdkconfig.old | 392 +++++++++++++++--- 9 files changed, 667 insertions(+), 181 deletions(-) rename Firmware/main/src/{hello_world_main.cpp => app_main.cpp} (76%) diff --git a/Firmware/main/CMakeLists.txt b/Firmware/main/CMakeLists.txt index f0dd86d..240c109 100644 --- a/Firmware/main/CMakeLists.txt +++ b/Firmware/main/CMakeLists.txt @@ -1,5 +1,5 @@ idf_component_register(SRCS - src/hello_world_main.cpp + src/app_main.cpp src/display.cpp src/bat_mon.cpp src/spi_global.cpp @@ -9,5 +9,5 @@ idf_component_register(SRCS src/shutdowner.cpp src/buttons.cpp src/power_helper.cpp - PRIV_REQUIRES spi_flash esp_driver_i2c driver sdk-esp + PRIV_REQUIRES spi_flash esp_driver_i2c driver sdk-esp esp_timer INCLUDE_DIRS "include") diff --git a/Firmware/main/include/disp_tools.hpp b/Firmware/main/include/disp_tools.hpp index f51afc4..8ac06ca 100644 --- a/Firmware/main/include/disp_tools.hpp +++ b/Firmware/main/include/disp_tools.hpp @@ -7,43 +7,40 @@ #include -class DispTools { -public: - static DispTools& get(); - - void clear() { +namespace DispTools { + static void clear() { for (int y = 0; y < DISP_HEIGHT; y++) { for (int x = 0; x < DISP_WIDTH; x++) { - SMD::get().set_pixel(x, y, true); + SMD::set_pixel(x, y, true); } } } - bool get_pixel(int x, int y) { + static bool get_pixel(int x, int y) { if (x < 0 || x >= DISP_WIDTH || y < 0 || y >= DISP_HEIGHT) assert(false); assert(false); // Not implemented return true; // return disp_frame[y][x]; } - void reset_pixel(int x, int y) { + static void reset_pixel(int x, int y) { if (x < 0 || x >= DISP_WIDTH || y < 0 || y >= DISP_HEIGHT) assert(false); - SMD::get().set_pixel(x, y, false); + SMD::set_pixel(x, y, false); } - void set_pixel(int x, int y) { + static void set_pixel(int x, int y) { if (x < 0 || x >= DISP_WIDTH || y < 0 || y >= DISP_HEIGHT) assert(false); - SMD::get().set_pixel(x, y, true); + SMD::set_pixel(x, y, true); } - void set_pixel(int x, int y, bool on) { + static void set_pixel(int x, int y, bool on) { if (on) { set_pixel(x, y); } else { reset_pixel(x, y); } } - void draw_to_display(); + static void draw_to_display() { SMD::draw(); } }; diff --git a/Firmware/main/include/display.hpp b/Firmware/main/include/display.hpp index 5151cc3..8e483c0 100644 --- a/Firmware/main/include/display.hpp +++ b/Firmware/main/include/display.hpp @@ -15,44 +15,41 @@ #include "Surface.hpp" #include "Window.hpp" -class SMD { -public: - static constexpr size_t kLineBytes = DISP_WIDTH / 8; - static constexpr size_t kLineMultiSingle = (kLineBytes + 2); - static constexpr size_t kLineDataBytes = kLineMultiSingle * DISP_HEIGHT + 2; +namespace SMD { +static constexpr size_t kLineBytes = DISP_WIDTH / 8; +static constexpr size_t kLineMultiSingle = (kLineBytes + 2); +static constexpr size_t kLineDataBytes = kLineMultiSingle * DISP_HEIGHT + 2; - static DMA_ATTR uint8_t dma_buf[SMD::kLineDataBytes]; +DMA_ATTR extern uint8_t dma_buf[SMD::kLineDataBytes]; - static SMD& get(); - void clear(); - void draw(); +void init(); +void clear(); +void draw(); - void set_pixel(int x, int y, bool value) { - assert(x >= 0 && x < DISP_WIDTH && y >= 0 && y < DISP_HEIGHT); +static void set_pixel(int x, int y, bool value) { + assert(x >= 0 && x < DISP_WIDTH && y >= 0 && y < DISP_HEIGHT); - unsigned lineIdx = 2 + kLineMultiSingle * y + (x / 8); - unsigned bitIdx = 1 << (7 - (x % 8)) % 8; + unsigned lineIdx = 2 + kLineMultiSingle * y + (x / 8); + unsigned bitIdx = 1 << (7 - (x % 8)) % 8; - if (value) { - dma_buf[lineIdx] &= ~bitIdx; - } else { - dma_buf[lineIdx] |= bitIdx; - } + if (value) { + dma_buf[lineIdx] &= ~bitIdx; + } else { + dma_buf[lineIdx] |= bitIdx; } +} -private: - SMD(); - static inline spi_device_interface_config_t _devcfg = { - .mode = 0, // SPI mode 0 - .clock_speed_hz = 2 * 1000 * 1000, // Clock out at 10 MHz - .spics_io_num = SPI_DISP_CS, // CS pin - .flags = SPI_DEVICE_POSITIVE_CS, - .queue_size = 3, - // .pre_cb = lcd_spi_pre_transfer_callback, //Specify pre-transfer callback to handle D/C line - }; - spi_device_handle_t _spi; - bool _vcom = false; +static inline spi_device_interface_config_t _devcfg = { + .mode = 0, // SPI mode 0 + .clock_speed_hz = 2 * 1000 * 1000, // Clock out at 10 MHz + .spics_io_num = SPI_DISP_CS, // CS pin + .flags = SPI_DEVICE_POSITIVE_CS, + .queue_size = 3, + // .pre_cb = lcd_spi_pre_transfer_callback, //Specify pre-transfer callback to handle D/C line }; +extern spi_device_handle_t _spi; +extern bool _vcom; +}; // namespace SMD class SMDSurface : public Surface, public StandardEventQueue { public: diff --git a/Firmware/main/src/hello_world_main.cpp b/Firmware/main/src/app_main.cpp similarity index 76% rename from Firmware/main/src/hello_world_main.cpp rename to Firmware/main/src/app_main.cpp index 0933f6d..e93f492 100644 --- a/Firmware/main/src/hello_world_main.cpp +++ b/Firmware/main/src/app_main.cpp @@ -17,7 +17,10 @@ #include "esp_chip_info.h" #include "esp_flash.h" #include "esp_pm.h" // power management (guard usage by CONFIG_PM_ENABLE) +#include "esp_private/esp_clk.h" +#include "esp_random.h" #include "esp_system.h" +#include "esp_timer.h" #include #include @@ -46,9 +49,10 @@ constexpr int FrameW = 400; constexpr int FrameH = 240; // game feel -constexpr int DropMsStart = 650; -constexpr int DropMsMin = 90; -constexpr int DropFastMs = 20; +// Faster gravity & soft drop +constexpr int DropMsStart = 520; // was 650 +constexpr int DropMsMin = 60; // was 90 +constexpr int DropFastMs = 1; // soft drop interval (was 5) constexpr int LevelStepClr = 10; constexpr int LockDelayMs = 380; @@ -94,14 +98,14 @@ struct PlatformFramebuffer final : IFramebuffer { if (x < 0 || y < 0 || x >= width() || y >= height()) return; // Logical ON must be BLACK on panel: - DispTools::get().set_pixel(x, y, on); // on=true -> black; on=false -> white + DispTools::set_pixel(x, y, on); // on=true -> black; on=false -> white } void clear(bool on) override { // Explicit fill to guarantee polarity: no DispTools::clear() shortcuts. for (int y = 0; y < height(); ++y) for (int x = 0; x < width(); ++x) - DispTools::get().set_pixel(x, y, on); + DispTools::set_pixel(x, y, on); } }; @@ -138,6 +142,41 @@ struct PlatformClock final : IClock { static inline uint32_t elapsed_ms(uint32_t a, uint32_t b) { return b - a; } +// High precision performance stats (microsecond accumulation via esp_timer) +struct PerfStats { + uint64_t overlayUs = 0, inputUs = 0, logicUs = 0, renderUs = 0, stepUs = 0; // high-level phases (us) + uint64_t rClearUs = 0, rBoardUs = 0, rPiecesUs = 0, rHUDUs = 0, rOverlayUs = 0, + rBlitUs = 0; // render sub-phases (us) + uint32_t frames = 0; + uint64_t lastPrintUs = 0; + // Last-frame snapshots (microseconds) for immediate per-frame printing + uint64_t lastOverlayUs = 0, lastInputUs = 0, lastLogicUs = 0, lastRenderUs = 0, lastStepUs = 0; + uint64_t lastRClearUs = 0, lastRBoardUs = 0, lastRPiecesUs = 0, lastRHUDUs = 0, lastROverlayUs = 0, lastRBlitUs = 0; + bool lastDidRender = false; // whether a render (paintHUD) happened this frame + void maybePrint(uint64_t nowUs) { + if (!lastPrintUs) + lastPrintUs = nowUs; + uint64_t span = nowUs - lastPrintUs; + if (span >= 1000000ULL && frames) { + double f = frames; + auto av = [&](uint64_t v) { return (double) v / 1000.0 / f; }; // convert us->ms per frame + double fps = f * 1000000.0 / span; + printf("PERF overlay=%.3fms input=%.3fms logic=%.3fms render=%.3fms [clr=%.3f brd=%.3f pcs=%.3f hud=%.3f " + "ovl=%.3f blt=%.3f] step=%.3fms fps=%.1f\n", + av(overlayUs), av(inputUs), av(logicUs), av(renderUs), av(rClearUs), av(rBoardUs), av(rPiecesUs), + av(rHUDUs), av(rOverlayUs), av(rBlitUs), av(stepUs), fps); + overlayUs = inputUs = logicUs = renderUs = stepUs = 0; + rClearUs = rBoardUs = rPiecesUs = rHUDUs = rOverlayUs = rBlitUs = 0; + frames = 0; + lastPrintUs = nowUs; + } + } + static PerfStats& get() { + static PerfStats ps; + return ps; + } +}; + // ───────────────────────────────────────────────────────────────────────────── // Pieces using RotGrid = std::array; @@ -358,26 +397,28 @@ public: } void render(const Board& b, int px, int py, int prot, int pidx, int score, int level, int lines, int nextIdx, - bool ghost, bool paused, bool gameOver) { + bool ghost, bool paused, bool gameOver, int fps, int avgFrameMs10) { + auto& ps = PerfStats::get(); + auto tus = []() { return esp_timer_get_time(); }; + uint64_t t0 = tus(); fb.clear(false); // white background + uint64_t t1 = tus(); + ps.rClearUs += (t1 - t0); + ps.lastRClearUs = (t1 - t0); drawBatteryOverlay(); - - // Outer playfield frame rect(ox - 2, oy - 2, bw + 4, bh + 4, true); - - // Draw settled cells (always full square borders for consistent look) + uint64_t t2 = tus(); for (int y = 0; y < cfg::BoardH; ++y) for (int x = 0; x < cfg::BoardW; ++x) { int v = b.get(x, y); if (v) drawCellFull(x, y, v, false); } - - // Ghost (classic outline per cell) BEFORE active so active isn't obscured + uint64_t t3 = tus(); + ps.rBoardUs += (t3 - t2); + ps.lastRBoardUs = (t3 - t2); if (ghost) drawGhost(b, px, py, prot, pidx); - - // Active piece overlay for (int yy = 0; yy < 4; ++yy) for (int xx = 0; xx < 4; ++xx) if (cell_of(TET[pidx], prot, xx, yy)) { @@ -385,10 +426,11 @@ public: if (gx >= 0 && gx < cfg::BoardW && gy >= 0 && gy < cfg::BoardH) drawCellFull(gx, gy, pidx + 1, true); } - - // HUD - int hudX = ox + bw + 16; - int yHUD = oy + 9; + uint64_t t4 = tus(); + ps.rPiecesUs += (t4 - t3); + ps.lastRPiecesUs = (t4 - t3); + int hudX = ox + bw + 16; + int yHUD = oy + 9; drawLabel(hudX, yHUD, "SCORE"); yHUD += 12; drawNumber(hudX, yHUD, score); @@ -403,7 +445,6 @@ public: yHUD += 19; drawLabel(hudX, yHUD, "NEXT"); yHUD += 7; - const int p = cfg::CellPx; const int nx = hudX, ny = yHUD + 4; rect(nx - 2, ny - 2, 4 * p + 4, 4 * p + 4, true); @@ -411,12 +452,29 @@ public: for (int xx = 0; xx < 4; ++xx) if (cell_of(TET[nextIdx], 0, xx, yy)) drawCellFullPreview(nx + xx * p, ny + yy * p, nextIdx + 1); - + // Performance text + { + char perf[40]; + int msInt = avgFrameMs10 / 10; + int msDec = avgFrameMs10 % 10; + snprintf(perf, sizeof(perf), "FPS:%d %d.%dMS", fps, msInt, msDec); + int perfY = ny + 4 * p + 10; + drawText(hudX, perfY, perf); + } + uint64_t t5 = tus(); + ps.rHUDUs += (t5 - t4); + ps.lastRHUDUs = (t5 - t4); if (gameOver) drawGameOverOverlay(); else if (paused) drawPausedOverlay(); - DispTools::get().draw_to_display(); + uint64_t t6 = tus(); + ps.rOverlayUs += (t6 - t5); + ps.lastROverlayUs = (t6 - t5); + DispTools::draw_to_display(); + uint64_t t7 = tus(); + ps.rBlitUs += (t7 - t6); + ps.lastRBlitUs = (t7 - t6); } // Consistent full bordered cell drawing (square regardless of neighbors) @@ -766,7 +824,10 @@ private: // Bag class Bag { public: - Bag() : rng(std::random_device{}()) { refill(); } + Bag() { + reseed(); + refill(); + } int next() { if (bag.empty()) refill(); @@ -774,8 +835,17 @@ public: bag.pop_back(); return t; } + void reset() { // reseed and refill new 7-bag + reseed(); + refill(); + } private: + void reseed() { + // Use hardware RNG (non-blocking) instead of std::random_device (may block or be unsupported) + uint32_t seed = esp_random(); + rng.seed(seed); + } void refill() { bag = {0, 1, 2, 3, 4, 5, 6}; std::shuffle(bag.begin(), bag.end(), rng); @@ -787,7 +857,10 @@ private: // ───────────────────────────────────────────────────────────────────────────── // Game struct ScoreState { - int level = 0, score = 0, lines = 0, dropMs = cfg::DropMsStart; + int level = 0; + int score = 0; + int lines = 0; + int dropMs = cfg::DropMsStart; }; class Game { @@ -802,17 +875,73 @@ public: } void step() { - const uint32_t now = clock.millis(); + uint64_t stepStartUs = esp_timer_get_time(); + uint32_t now = clock.millis(); + PerfStats::get().lastDidRender = false; // reset per-frame render flag + const uint32_t oStart = clock.millis(); overlayTick(now); - InputState st = input.readState(); + const uint32_t oEnd = clock.millis(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (uint64_t) (oEnd - oStart) * 1000ULL; + ps.overlayUs += dur; + ps.lastOverlayUs = dur; + } + const uint32_t iStart = clock.millis(); + InputState st = input.readState(); + const uint32_t iEnd = clock.millis(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (uint64_t) (iEnd - iStart) * 1000ULL; + ps.inputUs += dur; + ps.lastInputUs = dur; + } + uint64_t logicStartUs = esp_timer_get_time(); if (!running) { - // Allow restart on any button press (except no input) - if (st.left || st.right || st.down || st.rotate || st.back) { - restart(); - return; // restart sets dirty and running + bool anyPressed = st.left || st.right || st.down || st.rotate || st.back; + uint32_t sinceGameOver = elapsed_ms(gameOverTime, now); + if (sinceGameOver >= gameOverRestartDelayMs) { + // Arm restart only after buttons are released once past delay + if (!anyPressed) + gameOverPrevPressed = false; // ready to accept a fresh press + else if (anyPressed && !gameOverPrevPressed) { + restart(); + return; + } + } + // Maintain pressed state (prevents holding through the delay from triggering restart) + if (anyPressed) + gameOverPrevPressed = true; + uint64_t logicEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (logicEndUs - logicStartUs); + ps.logicUs += dur; + ps.lastLogicUs = dur; } if (dirty) paintHUD(); + uint64_t stepEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (stepEndUs - stepStartUs); + ps.stepUs += dur; + ps.lastStepUs = dur; + // Print per-frame breakdown (no render this frame if not dirty) + auto ms = [](uint64_t us) { return (double) us / 1000.0; }; + if (ps.lastDidRender) { + printf("STEP overlay=%.3fms input=%.3fms logic=%.3fms render=%.3fms [clr=%.3f brd=%.3f pcs=%.3f " + "hud=%.3f ovl=%.3f blt=%.3f] step=%.3fms\n", + ms(ps.lastOverlayUs), ms(ps.lastInputUs), ms(ps.lastLogicUs), ms(ps.lastRenderUs), + ms(ps.lastRClearUs), ms(ps.lastRBoardUs), ms(ps.lastRPiecesUs), ms(ps.lastRHUDUs), + ms(ps.lastROverlayUs), ms(ps.lastRBlitUs), ms(ps.lastStepUs)); + } else { + printf("STEP overlay=%.3fms input=%.3fms logic=%.3fms step=%.3fms\n", ms(ps.lastOverlayUs), + ms(ps.lastInputUs), ms(ps.lastLogicUs), ms(ps.lastStepUs)); + } + ps.frames++; + ps.maybePrint(stepEndUs); + } return; } // Pause toggle @@ -823,8 +952,35 @@ public: } backPrev = st.back; if (paused) { + uint64_t logicEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (logicEndUs - logicStartUs); + ps.logicUs += dur; + ps.lastLogicUs = dur; + } if (dirty) paintHUD(); + uint64_t stepEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (stepEndUs - stepStartUs); + ps.stepUs += dur; + ps.lastStepUs = dur; + auto ms = [](uint64_t us) { return (double) us / 1000.0; }; + if (ps.lastDidRender) { + printf("STEP overlay=%.3fms input=%.3fms logic=%.3fms render=%.3fms [clr=%.3f brd=%.3f pcs=%.3f " + "hud=%.3f ovl=%.3f blt=%.3f] step=%.3fms\n", + ms(ps.lastOverlayUs), ms(ps.lastInputUs), ms(ps.lastLogicUs), ms(ps.lastRenderUs), + ms(ps.lastRClearUs), ms(ps.lastRBoardUs), ms(ps.lastRPiecesUs), ms(ps.lastRHUDUs), + ms(ps.lastROverlayUs), ms(ps.lastRBlitUs), ms(ps.lastStepUs)); + } else { + printf("STEP overlay=%.3fms input=%.3fms logic=%.3fms step=%.3fms\n", ms(ps.lastOverlayUs), + ms(ps.lastInputUs), ms(ps.lastLogicUs), ms(ps.lastStepUs)); + } + ps.frames++; + ps.maybePrint(stepEndUs); + } return; } // Rotation @@ -849,8 +1005,35 @@ public: } else touchingGround = false; } + uint64_t logicEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (logicEndUs - logicStartUs); + ps.logicUs += dur; + ps.lastLogicUs = dur; + } if (dirty) paintHUD(); + uint64_t stepEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (stepEndUs - stepStartUs); + ps.stepUs += dur; + ps.lastStepUs = dur; + auto ms = [](uint64_t us) { return (double) us / 1000.0; }; + if (ps.lastDidRender) { + printf("STEP overlay=%.3fms input=%.3fms logic=%.3fms render=%.3fms [clr=%.3f brd=%.3f pcs=%.3f " + "hud=%.3f ovl=%.3f blt=%.3f] step=%.3fms\n", + ms(ps.lastOverlayUs), ms(ps.lastInputUs), ms(ps.lastLogicUs), ms(ps.lastRenderUs), + ms(ps.lastRClearUs), ms(ps.lastRBoardUs), ms(ps.lastRPiecesUs), ms(ps.lastRHUDUs), + ms(ps.lastROverlayUs), ms(ps.lastRBlitUs), ms(ps.lastStepUs)); + } else { + printf("STEP overlay=%.3fms input=%.3fms logic=%.3fms step=%.3fms\n", ms(ps.lastOverlayUs), + ms(ps.lastInputUs), ms(ps.lastLogicUs), ms(ps.lastStepUs)); + } + ps.frames++; + ps.maybePrint(stepEndUs); + } } uint32_t recommendedSleepMs(uint32_t now) const { @@ -883,8 +1066,9 @@ public: private: // Power-aware overlay throttling - static constexpr uint32_t overlayIntervalMs = 500; // base interval (paused uses multiplier) - static constexpr uint32_t maxIdleSleepMs = 120; // cap to keep input responsive + static constexpr uint32_t overlayIntervalMs = 500; // base interval (paused uses multiplier) + static constexpr uint32_t maxIdleSleepMs = 120; // cap to keep input responsive + static constexpr uint32_t gameOverRestartDelayMs = 2000; // ms grace period before restart allowed IFramebuffer& fb; IInput& input; @@ -897,11 +1081,18 @@ private: bool rotPrev = false, lHeld = false, rHeld = false, backPrev = false; uint32_t lHoldStart = 0, rHoldStart = 0, lLastRep = 0, rLastRep = 0, lastFall = 0, touchTime = 0; int current = 0, nextPiece = 0, px = 3, py = -2, rot = 0; + // Game over restart gating + uint32_t gameOverTime = 0; // time when game over occurred + bool gameOverPrevPressed = false; // tracks button hold through delay // Dirty rendering & overlay bool dirty = false; uint32_t lastOverlayUpd = 0; + // Performance stats + uint32_t frameCount = 0, frameAccumMs = 0, lastFrameTime = 0, lastStatTime = 0; + int statFps = 0, statAvgFrameMs10 = 0; + void overlayTick(uint32_t now) { uint32_t interval = (paused || !running) ? overlayIntervalMs * 8 : overlayIntervalMs; // 4s paused or game over if (elapsed_ms(lastOverlayUpd, now) >= interval) { @@ -910,20 +1101,46 @@ private: } } void paintHUD() { + uint64_t rStartUs = esp_timer_get_time(); + uint32_t rStart = clock.millis(); + // Frame boundary at render start + if (lastFrameTime != 0) { + uint32_t dt = elapsed_ms(lastFrameTime, rStart); + frameAccumMs += dt; + } + frameCount++; + lastFrameTime = rStart; + if (elapsed_ms(lastStatTime, rStart) >= 1000) { + statFps = frameCount; + statAvgFrameMs10 = frameCount ? (int) ((frameAccumMs * 10) / frameCount) : 0; + frameCount = 0; + frameAccumMs = 0; + lastStatTime = rStart; + } renderer.render(board, px, py, rot, current, score.score, score.level, score.lines, nextPiece, true, paused, - !running); + !running, statFps, statAvgFrameMs10); + uint64_t rEndUs = esp_timer_get_time(); + { + auto& ps = PerfStats::get(); + uint64_t dur = (rEndUs - rStartUs); + ps.renderUs += dur; + ps.lastRenderUs = dur; + ps.lastDidRender = true; + } dirty = false; } void restart() { board.clear(); - score = ScoreState{}; - bag = Bag{}; // new sequence + score = ScoreState{}; + bag.reset(); // new randomized sequence without reconstructing (avoids potential random_device issues) nextPiece = bag.next(); running = true; paused = false; touchingGround = false; rotPrev = lHeld = rHeld = backPrev = false; PowerHelper::get().set_slow(false); + gameOverTime = 0; + gameOverPrevPressed = false; spawn(); dirty = true; } @@ -937,7 +1154,9 @@ private: dirty = true; // Game over if immediate collision at spawn position OR unable to move one row down if (board.collides(px, py, rot, current) || board.collides(px, py + 1, rot, current)) { - running = false; + running = false; + gameOverTime = clock.millis(); + gameOverPrevPressed = true; // require a release after delay } } @@ -1015,7 +1234,9 @@ private: board.lock(px, py, rot, current); dirty = true; if (above) { // immediate game over (do not spawn new piece) - running = false; + running = false; + gameOverTime = clock.millis(); + gameOverPrevPressed = true; return; } int c = board.clearLines(); @@ -1064,9 +1285,9 @@ private: extern "C" void app_main() { // Configure dynamic frequency scaling & light sleep if enabled #ifdef CONFIG_PM_ENABLE - esp_pm_config_t pm_config = { - .max_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, .min_freq_mhz = 16, .light_sleep_enable = true}; - ESP_ERROR_CHECK(esp_pm_configure(&pm_config)); + // esp_pm_config_t pm_config = { + // .max_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ, .min_freq_mhz = 16, .light_sleep_enable = true}; + // ESP_ERROR_CHECK(esp_pm_configure(&pm_config)); ESP_ERROR_CHECK(esp_sleep_enable_gpio_wakeup()); #endif @@ -1080,7 +1301,8 @@ extern "C" void app_main() { I2cGlobal::get(); BatMon::get(); SpiGlobal::get(); - DispTools::get().clear(); + SMD::init(); + DispTools::clear(); static PlatformFramebuffer fb; static PlatformInput input; diff --git a/Firmware/main/src/disp_tools.cpp b/Firmware/main/src/disp_tools.cpp index cd24302..e552d66 100644 --- a/Firmware/main/src/disp_tools.cpp +++ b/Firmware/main/src/disp_tools.cpp @@ -8,9 +8,3 @@ #include -DispTools& DispTools::get() { - static DispTools disp_tools; - return disp_tools; -} - -void DispTools::draw_to_display() { SMD::get().draw(); } diff --git a/Firmware/main/src/disp_tty.cpp b/Firmware/main/src/disp_tty.cpp index 28c6ad9..44091fd 100644 --- a/Firmware/main/src/disp_tty.cpp +++ b/Firmware/main/src/disp_tty.cpp @@ -13,9 +13,9 @@ void FbTty::draw_char(int col, int row) { for (int y = 0; y < 16; y++) { bool color = fonts_Terminess_Powerline[_buf[col][row]][y] & (1 << (8 - x)); if (color) - DispTools::get().set_pixel(col * 8 + x, row * 16 + y); + DispTools::set_pixel(col * 8 + x, row * 16 + y); else - DispTools::get().reset_pixel(col * 8 + x, row * 16 + y); + DispTools::reset_pixel(col * 8 + x, row * 16 + y); } } } diff --git a/Firmware/main/src/display.cpp b/Firmware/main/src/display.cpp index 9cd96e4..28bf842 100644 --- a/Firmware/main/src/display.cpp +++ b/Firmware/main/src/display.cpp @@ -11,18 +11,16 @@ #include "disp_tools.hpp" -DMA_ATTR uint8_t SMD::dma_buf[SMD::kLineDataBytes]{}; +DMA_ATTR uint8_t SMD::dma_buf[SMD::kLineDataBytes]{}; +spi_device_handle_t SMD::_spi; +bool SMD::_vcom = false; // This solution is attributed to Rich Schroeppel in the Programming Hacks section // TODO: Why does the device flag not work? unsigned char reverse_bits3(unsigned char b) { return (b * 0x0202020202ULL & 0x010884422010ULL) % 0x3ff; } -SMD& SMD::get() { - static SMD smd; - return smd; -} -SMD::SMD() { +void SMD::init() { spi_bus_add_device(SPI_BUS, &_devcfg, &_spi); ESP_ERROR_CHECK(gpio_reset_pin(SPI_DISP_DISP)); @@ -60,12 +58,12 @@ void SMD::draw() { void SMDSurface::draw_pixel_impl(unsigned x, unsigned y, const BwPixel& pixel) { if (pixel.on) - DispTools::get().set_pixel(x, y); + DispTools::set_pixel(x, y); else - DispTools::get().reset_pixel(x, y); + DispTools::reset_pixel(x, y); } -void SMDSurface::clear_impl() { DispTools::get().clear(); } +void SMDSurface::clear_impl() { DispTools::clear(); } int SMDSurface::get_width_impl() const { return DISP_WIDTH; } diff --git a/Firmware/sdkconfig b/Firmware/sdkconfig index 136131e..1b9a307 100644 --- a/Firmware/sdkconfig +++ b/Firmware/sdkconfig @@ -1,6 +1,6 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration # CONFIG_SOC_CAPS_ECO_VER_MAX=102 CONFIG_SOC_ADC_SUPPORTED=y @@ -438,9 +438,9 @@ CONFIG_BOOTLOADER_PROJECT_VER=1 # end of Application Rollback # -# Bootloader Rollback +# Recovery Bootloader and Rollback # -# end of Bootloader Rollback +# end of Recovery Bootloader and Rollback CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y @@ -525,6 +525,7 @@ CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y CONFIG_ESP_ROM_GET_CLK_FREQ=y CONFIG_ESP_ROM_HAS_HAL_WDT=y CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y +CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y CONFIG_ESP_ROM_HAS_HEAP_TLSF=y CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y @@ -612,9 +613,9 @@ CONFIG_PARTITION_TABLE_MD5=y # # Compiler options # -CONFIG_COMPILER_OPTIMIZATION_DEBUG=y +# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set +CONFIG_COMPILER_OPTIMIZATION_PERF=y # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set @@ -803,13 +804,13 @@ CONFIG_BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION=-1 # end of GAP device name write permissions # -# PPCP settings +# Peripheral Preferred Connection Parameters (PPCP) settings # CONFIG_BT_NIMBLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL=0 CONFIG_BT_NIMBLE_SVC_GAP_PPCP_MIN_CONN_INTERVAL=0 CONFIG_BT_NIMBLE_SVC_GAP_PPCP_SLAVE_LATENCY=0 CONFIG_BT_NIMBLE_SVC_GAP_PPCP_SUPERVISION_TMO=0 -# end of PPCP settings +# end of Peripheral Preferred Connection Parameters (PPCP) settings CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM=0 CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_ENC=0 @@ -826,6 +827,7 @@ CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHOR=0 # CONFIG_BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN is not set # CONFIG_BT_NIMBLE_HOST_QUEUE_CONG_CHECK is not set # CONFIG_BT_NIMBLE_GATTC_PROC_PREEMPTION_PROTECT is not set +# CONFIG_BT_NIMBLE_GATTC_AUTO_PAIR is not set # # Host-controller Transport @@ -863,6 +865,7 @@ CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE=4096 # CONFIG_BT_LE_ASSERT_WHEN_ABNORMAL_DISCONN_ENABLED is not set # CONFIG_BT_LE_DEBUG_REMAIN_SCENE_ENABLED is not set # CONFIG_BT_LE_PTR_CHECK_ENABLED is not set +# CONFIG_BT_LE_MEM_CHECK_ENABLED is not set # end of Controller debug features CONFIG_BT_LE_LL_RESOLV_LIST_SIZE=4 @@ -919,6 +922,15 @@ CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX=32 CONFIG_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX=y CONFIG_BT_LE_RXBUF_OPT_ENABLED=y CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN=y + +# +# Reserved Memory Config +# +CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT=2 +CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT=2 +# end of Reserved Memory Config + +# CONFIG_BT_LE_DTM_ENABLED is not set # end of Controller Options # @@ -926,6 +938,7 @@ CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN=y # CONFIG_BT_ALARM_MAX_NUM=50 # CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set # end of Common Options # CONFIG_BT_HCI_LOG_DEBUG_EN is not set @@ -1038,6 +1051,7 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y # CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set # CONFIG_ESP_TLS_PSK_VERIFICATION is not set # CONFIG_ESP_TLS_INSECURE is not set +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y # end of ESP-TLS # @@ -1450,9 +1464,11 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # CONFIG_ESP_PHY_RF_CAL_NONE is not set # CONFIG_ESP_PHY_RF_CAL_FULL is not set CONFIG_ESP_PHY_CALIBRATION_MODE=0 +CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set # CONFIG_ESP_PHY_RECORD_USED_TIME is not set CONFIG_ESP_PHY_IRAM_OPT=y +# CONFIG_ESP_PHY_DEBUG is not set # end of PHY # @@ -1513,6 +1529,7 @@ CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_64 is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_96=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=96 +CONFIG_ESP_SYSTEM_IN_IRAM=y # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set @@ -1693,7 +1710,6 @@ CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 # # Port # -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set @@ -1867,7 +1883,7 @@ CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 +CONFIG_LWIP_DHCP_OPTIONS_LEN=69 CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 @@ -2032,6 +2048,7 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y +# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set CONFIG_MBEDTLS_PKCS7_C=y # end of mbedTLS v3.x related @@ -2286,7 +2303,8 @@ CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 # # Auto-detect flash chips # -CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y # CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set # CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set # CONFIG_SPI_FLASH_SUPPORT_GD_CHIP is not set @@ -2412,9 +2430,9 @@ CONFIG_LOG_BOOTLOADER_LEVEL=3 CONFIG_FLASHMODE_DIO=y # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set # CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y diff --git a/Firmware/sdkconfig.old b/Firmware/sdkconfig.old index 6bce119..9249b88 100644 --- a/Firmware/sdkconfig.old +++ b/Firmware/sdkconfig.old @@ -1,11 +1,13 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration # +CONFIG_SOC_CAPS_ECO_VER_MAX=102 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_ANA_CMPR_SUPPORTED=y CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y CONFIG_SOC_UART_SUPPORTED=y +CONFIG_SOC_UHCI_SUPPORTED=y CONFIG_SOC_GDMA_SUPPORTED=y CONFIG_SOC_AHB_GDMA_SUPPORTED=y CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y @@ -45,6 +47,7 @@ CONFIG_SOC_ECDSA_SUPPORTED=y CONFIG_SOC_FLASH_ENC_SUPPORTED=y CONFIG_SOC_SECURE_BOOT_SUPPORTED=y CONFIG_SOC_BOD_SUPPORTED=y +CONFIG_SOC_VBAT_SUPPORTED=y CONFIG_SOC_APM_SUPPORTED=y CONFIG_SOC_PMU_SUPPORTED=y CONFIG_SOC_LP_TIMER_SUPPORTED=y @@ -60,10 +63,12 @@ CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y CONFIG_SOC_PM_SUPPORTED=y CONFIG_SOC_XTAL_SUPPORT_32M=y +CONFIG_SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN=y CONFIG_SOC_AES_SUPPORT_DMA=y CONFIG_SOC_AES_GDMA=y CONFIG_SOC_AES_SUPPORT_AES_128=y CONFIG_SOC_AES_SUPPORT_AES_256=y +CONFIG_SOC_AES_SUPPORT_PSEUDO_ROUND_FUNCTION=y CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y CONFIG_SOC_ADC_MONITOR_SUPPORTED=y @@ -167,7 +172,10 @@ CONFIG_SOC_I2S_SUPPORTS_PLL_F64M=y CONFIG_SOC_I2S_SUPPORTS_PCM=y CONFIG_SOC_I2S_SUPPORTS_PDM=y CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y +CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 CONFIG_SOC_I2S_SUPPORTS_TDM=y CONFIG_SOC_I2S_TDM_FULL_DATA_WIDTH=y CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y @@ -188,6 +196,7 @@ CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y +CONFIG_SOC_PCNT_SUPPORT_STEP_NOTIFY=y CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_RMT_GROUPS=1 CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2 @@ -227,7 +236,9 @@ CONFIG_SOC_PARLIO_TX_CLK_SUPPORT_GATING=y CONFIG_SOC_PARLIO_RX_CLK_SUPPORT_GATING=y CONFIG_SOC_PARLIO_RX_CLK_SUPPORT_OUTPUT=y CONFIG_SOC_PARLIO_TRANS_BIT_ALIGN=y +CONFIG_SOC_PARLIO_TX_SUPPORT_LOOP_TRANSMISSION=y CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_PARLIO_SUPPORT_SPI_LCD=y CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 CONFIG_SOC_MPI_OPERATIONS_NUM=3 CONFIG_SOC_RSA_MAX_BIT_LEN=3072 @@ -270,7 +281,6 @@ CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y CONFIG_SOC_MEMSPI_SRC_FREQ_64M_SUPPORTED=y CONFIG_SOC_MEMSPI_SRC_FREQ_32M_SUPPORTED=y CONFIG_SOC_MEMSPI_SRC_FREQ_16M_SUPPORTED=y -CONFIG_SOC_MEMSPI_FLASH_CLK_SRC_IS_INDEPENDENT=y CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 CONFIG_SOC_SYSTIMER_ALARM_NUM=3 CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 @@ -293,6 +303,7 @@ CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_MWDT_SUPPORT_XTAL=y CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_TWAI_CONTROLLER_NUM=1 +CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y CONFIG_SOC_TWAI_BRP_MIN=2 CONFIG_SOC_TWAI_BRP_MAX=32768 @@ -314,9 +325,14 @@ CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y +CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND=y CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y +CONFIG_SOC_ECC_CONSTANT_TIME_POINT_MUL=y CONFIG_SOC_ECDSA_USES_MPI=y +CONFIG_SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE=y +CONFIG_SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP=y +CONFIG_SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED=y CONFIG_SOC_UART_NUM=2 CONFIG_SOC_UART_HP_NUM=2 CONFIG_SOC_UART_FIFO_LEN=128 @@ -326,6 +342,12 @@ CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_UART_WAKEUP_CHARS_SEQ_MAX_LEN=5 +CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_FIFO_THRESH_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_START_BIT_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_CHAR_SEQ_MODE=y +CONFIG_SOC_UHCI_NUM=1 CONFIG_SOC_COEX_HW_PTI=y CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 @@ -349,13 +371,16 @@ CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y CONFIG_SOC_PM_RETENTION_SW_TRIGGER_REGDMA=y +CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y CONFIG_SOC_CLK_RC32K_SUPPORTED=y CONFIG_SOC_CLK_LP_FAST_SUPPORT_LP_PLL=y +CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y CONFIG_SOC_RCC_IS_INDEPENDENT=y +CONFIG_SOC_CLK_ANA_I2C_MST_HAS_ROOT_GATE=y CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y @@ -371,6 +396,7 @@ CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y +CONFIG_SOC_BLE_CTE_SUPPORTED=y CONFIG_SOC_DEBUG_HAVE_OCD_STUB_BINS=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TOOLCHAIN="gcc" @@ -405,6 +431,17 @@ CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y CONFIG_BOOTLOADER_PROJECT_VER=1 # end of Bootloader manager +# +# Application Rollback +# +# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set +# end of Application Rollback + +# +# Recovery Bootloader and Rollback +# +# end of Recovery Bootloader and Rollback + CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set @@ -413,6 +450,8 @@ CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # # Log # +CONFIG_BOOTLOADER_LOG_VERSION_1=y +CONFIG_BOOTLOADER_LOG_VERSION=1 # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -427,6 +466,13 @@ CONFIG_BOOTLOADER_LOG_LEVEL=3 # CONFIG_BOOTLOADER_LOG_COLORS is not set CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y # end of Format + +# +# Settings +# +CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y +CONFIG_BOOTLOADER_LOG_MODE_TEXT=y +# end of Settings # end of Log # @@ -442,7 +488,6 @@ CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y CONFIG_BOOTLOADER_WDT_ENABLE=y # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set @@ -480,11 +525,13 @@ CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y CONFIG_ESP_ROM_GET_CLK_FREQ=y CONFIG_ESP_ROM_HAS_HAL_WDT=y CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y +CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y CONFIG_ESP_ROM_HAS_HEAP_TLSF=y CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y CONFIG_ESP_ROM_HAS_SPI_FLASH=y +CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y CONFIG_ESP_ROM_WITHOUT_REGI2C=y CONFIG_ESP_ROM_HAS_NEWLIB=y CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y @@ -497,6 +544,8 @@ CONFIG_ESP_ROM_USB_OTG_NUM=-1 CONFIG_ESP_ROM_HAS_VERSION=y CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y +CONFIG_ESP_ROM_NO_USB_SERIAL_OUTPUT_API=y +CONFIG_ESP_ROM_HAS_SUBOPTIMAL_NEWLIB_ON_MISALIGNED_MEMORY=y # # Boot ROM Behavior @@ -507,6 +556,13 @@ CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y # CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set # end of Boot ROM Behavior +# +# ESP-TEE (Trusted Execution Environment) +# +# CONFIG_SECURE_ENABLE_TEE is not set +CONFIG_SECURE_TEE_LOG_LEVEL=0 +# end of ESP-TEE (Trusted Execution Environment) + # # Serial flasher config # @@ -557,9 +613,9 @@ CONFIG_PARTITION_TABLE_MD5=y # # Compiler options # -# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set +CONFIG_COMPILER_OPTIMIZATION_DEBUG=y # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -CONFIG_COMPILER_OPTIMIZATION_PERF=y +# CONFIG_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set @@ -637,6 +693,8 @@ CONFIG_BT_NIMBLE_ROLE_CENTRAL=y CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_GATT_CLIENT=y +CONFIG_BT_NIMBLE_GATT_SERVER=y # CONFIG_BT_NIMBLE_NVS_PERSIST is not set # CONFIG_BT_NIMBLE_SMP_ID_RESET is not set CONFIG_BT_NIMBLE_SECURITY_ENABLE=y @@ -645,11 +703,14 @@ CONFIG_BT_NIMBLE_SM_SC=y # CONFIG_BT_NIMBLE_SM_SC_DEBUG_KEYS is not set CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=y CONFIG_BT_NIMBLE_SM_LVL=0 +CONFIG_BT_NIMBLE_SM_SC_ONLY=0 +CONFIG_BT_NIMBLE_PRINT_ERR_NAME=y # CONFIG_BT_NIMBLE_DEBUG is not set # CONFIG_BT_NIMBLE_DYNAMIC_SERVICE is not set CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="nimble" CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=31 CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=256 +CONFIG_BT_NIMBLE_ATT_MAX_PREP_ENTRIES=64 CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE=0 # @@ -669,13 +730,13 @@ CONFIG_BT_NIMBLE_L2CAP_COC_SDU_BUFF_COUNT=1 # end of Memory Settings CONFIG_BT_NIMBLE_GATT_MAX_PROCS=4 -# CONFIG_BT_NIMBLE_HS_FLOW_CTRL is not set CONFIG_BT_NIMBLE_RPA_TIMEOUT=900 # CONFIG_BT_NIMBLE_MESH is not set CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS=y CONFIG_BT_NIMBLE_HS_STOP_TIMEOUT_MS=2000 CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=y CONFIG_BT_NIMBLE_MAX_CONN_REATTEMPT=3 +# CONFIG_BT_NIMBLE_HANDLE_REPEAT_PAIRING_DELETION is not set CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=y CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY=y CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y @@ -685,7 +746,9 @@ CONFIG_BT_NIMBLE_ENABLE_PERIODIC_SYNC=y CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 CONFIG_BT_NIMBLE_MAX_PERIODIC_ADVERTISER_LIST=5 # CONFIG_BT_NIMBLE_BLE_POWER_CONTROL is not set +# CONFIG_BT_NIMBLE_AOA_AOD is not set # CONFIG_BT_NIMBLE_GATT_CACHING is not set +# CONFIG_BT_NIMBLE_INCL_SVC_DISCOVERY is not set CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 # CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set # CONFIG_BT_NIMBLE_BLUFI_ENABLE is not set @@ -693,19 +756,42 @@ CONFIG_BT_NIMBLE_USE_ESP_TIMER=y # CONFIG_BT_NIMBLE_BLE_GATT_BLOB_TRANSFER is not set # -# GAP Service +# BLE Services # +CONFIG_BT_NIMBLE_PROX_SERVICE=y +CONFIG_BT_NIMBLE_ANS_SERVICE=y +CONFIG_BT_NIMBLE_CTS_SERVICE=y +CONFIG_BT_NIMBLE_HTP_SERVICE=y +CONFIG_BT_NIMBLE_IPSS_SERVICE=y +CONFIG_BT_NIMBLE_TPS_SERVICE=y +CONFIG_BT_NIMBLE_IAS_SERVICE=y +CONFIG_BT_NIMBLE_LLS_SERVICE=y +CONFIG_BT_NIMBLE_SPS_SERVICE=y +CONFIG_BT_NIMBLE_HR_SERVICE=y +# CONFIG_BT_NIMBLE_HID_SERVICE is not set +CONFIG_BT_NIMBLE_BAS_SERVICE=y +# CONFIG_BT_NIMBLE_SVC_BAS_BATTERY_LEVEL_NOTIFY is not set +CONFIG_BT_NIMBLE_DIS_SERVICE=y +# CONFIG_BT_NIMBLE_SVC_DIS_MANUFACTURER_NAME is not set +# CONFIG_BT_NIMBLE_SVC_DIS_SERIAL_NUMBER is not set +# CONFIG_BT_NIMBLE_SVC_DIS_HARDWARE_REVISION is not set +# CONFIG_BT_NIMBLE_SVC_DIS_FIRMWARE_REVISION is not set +# CONFIG_BT_NIMBLE_SVC_DIS_SOFTWARE_REVISION is not set +# CONFIG_BT_NIMBLE_SVC_DIS_SYSTEM_ID is not set +# CONFIG_BT_NIMBLE_SVC_DIS_PNP_ID is not set +# CONFIG_BT_NIMBLE_SVC_DIS_INCLUDED is not set +CONFIG_BT_NIMBLE_GAP_SERVICE=y # # GAP Appearance write permissions # # CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE is not set -# end of GAP Appearance write permissions - CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM=0 CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ENC=0 CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHN=0 CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHR=0 +# end of GAP Appearance write permissions + CONFIG_BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP=y # CONFIG_BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP is not set # CONFIG_BT_NIMBLE_SVC_GAP_CAR_SUPP is not set @@ -717,27 +803,31 @@ CONFIG_BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION=-1 # CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE is not set # end of GAP device name write permissions -CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM=0 -CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_ENC=0 -CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHEN=0 -CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHOR=0 +# +# Peripheral Preferred Connection Parameters (PPCP) settings +# CONFIG_BT_NIMBLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL=0 CONFIG_BT_NIMBLE_SVC_GAP_PPCP_MIN_CONN_INTERVAL=0 CONFIG_BT_NIMBLE_SVC_GAP_PPCP_SLAVE_LATENCY=0 CONFIG_BT_NIMBLE_SVC_GAP_PPCP_SUPERVISION_TMO=0 -# end of GAP Service +# end of Peripheral Preferred Connection Parameters (PPCP) settings -# -# BLE Services -# -# CONFIG_BT_NIMBLE_HID_SERVICE is not set +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM=0 +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_ENC=0 +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHEN=0 +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHOR=0 +# CONFIG_BT_NIMBLE_SVC_GAP_GATT_SECURITY_LEVEL is not set +# CONFIG_BT_NIMBLE_SVC_GAP_RPA_ONLY is not set # end of BLE Services # CONFIG_BT_NIMBLE_VS_SUPPORT is not set # CONFIG_BT_NIMBLE_OPTIMIZE_MULTI_CONN is not set # CONFIG_BT_NIMBLE_ENC_ADV_DATA is not set # CONFIG_BT_NIMBLE_HIGH_DUTY_ADV_ITVL is not set +# CONFIG_BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN is not set # CONFIG_BT_NIMBLE_HOST_QUEUE_CONG_CHECK is not set +# CONFIG_BT_NIMBLE_GATTC_PROC_PREEMPTION_PROTECT is not set +# CONFIG_BT_NIMBLE_GATTC_AUTO_PAIR is not set # # Host-controller Transport @@ -748,6 +838,9 @@ CONFIG_BT_NIMBLE_HCI_UART_FLOW_CTRL=0 CONFIG_BT_NIMBLE_HCI_UART_RTS_PIN=19 CONFIG_BT_NIMBLE_HCI_UART_CTS_PIN=23 # end of Host-controller Transport + +CONFIG_BT_NIMBLE_EATT_CHAN_NUM=0 +# CONFIG_BT_NIMBLE_SUBRATE is not set # end of NimBLE Options # @@ -763,10 +856,22 @@ CONFIG_BT_LE_HCI_INTERFACE_USE_RAM=y CONFIG_BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT=y CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE=4096 + +# +# Controller debug features +# # CONFIG_BT_LE_CONTROLLER_LOG_ENABLED is not set +# CONFIG_BT_LE_ERROR_SIM_ENABLED is not set +# CONFIG_BT_LE_ASSERT_WHEN_ABNORMAL_DISCONN_ENABLED is not set +# CONFIG_BT_LE_DEBUG_REMAIN_SCENE_ENABLED is not set +# CONFIG_BT_LE_PTR_CHECK_ENABLED is not set +# CONFIG_BT_LE_MEM_CHECK_ENABLED is not set +# end of Controller debug features + CONFIG_BT_LE_LL_RESOLV_LIST_SIZE=4 CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT=20 CONFIG_BT_LE_LL_SCA=60 +# CONFIG_BT_LE_LL_PEER_SCA_SET_ENABLE is not set # CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 @@ -802,12 +907,38 @@ CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P9=y # CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P20 is not set CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF=9 # CONFIG_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS is not set +# CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY is not set + +# +# BLE disconnects when Instant Passed (0x28) occurs +# +# CONFIG_BT_LE_CTRL_LLCP_CONN_UPDATE is not set +# CONFIG_BT_LE_CTRL_LLCP_CHAN_MAP_UPDATE is not set +# CONFIG_BT_LE_CTRL_LLCP_PHY_UPDATE is not set +# end of BLE disconnects when Instant Passed (0x28) occurs + +CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX=32 +# CONFIG_BT_LE_CTRL_CHAN_ASS_EN is not set +CONFIG_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX=y +CONFIG_BT_LE_RXBUF_OPT_ENABLED=y +CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN=y + +# +# Reserved Memory Config +# +CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT=2 +CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT=2 +# end of Reserved Memory Config + +# CONFIG_BT_LE_DTM_ENABLED is not set # end of Controller Options # # Common Options # CONFIG_BT_ALARM_MAX_NUM=50 +# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set # end of Common Options # CONFIG_BT_HCI_LOG_DEBUG_EN is not set @@ -826,15 +957,16 @@ CONFIG_BT_ALARM_MAX_NUM=50 # # -# TWAI Configuration +# Legacy TWAI Driver Configurations # -# CONFIG_TWAI_ISR_IN_IRAM is not set -# end of TWAI Configuration +# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy TWAI Driver Configurations # # Legacy ADC Driver Configuration # # CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set # # Legacy ADC Calibration Configuration @@ -847,42 +979,55 @@ CONFIG_BT_ALARM_MAX_NUM=50 # Legacy MCPWM Driver Configurations # # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy MCPWM Driver Configurations # # Legacy Timer Group Driver Configurations # # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy Timer Group Driver Configurations # # Legacy RMT Driver Configurations # # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy RMT Driver Configurations # # Legacy I2S Driver Configurations # # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy I2S Driver Configurations +# +# Legacy I2C Driver Configurations +# +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations + # # Legacy PCNT Driver Configurations # # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy PCNT Driver Configurations # # Legacy SDM Driver Configurations # # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy SDM Driver Configurations # # Legacy Temperature Sensor Driver Configurations # # CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy Temperature Sensor Driver Configurations # end of Driver Configurations @@ -898,6 +1043,7 @@ CONFIG_EFUSE_MAX_BLK_LEN=256 # ESP-TLS # CONFIG_ESP_TLS_USING_MBEDTLS=y +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set # CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set @@ -905,6 +1051,7 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y # CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set # CONFIG_ESP_TLS_PSK_VERIFICATION is not set # CONFIG_ESP_TLS_INSECURE is not set +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y # end of ESP-TLS # @@ -932,8 +1079,10 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # # ESP-Driver:Analog Comparator Configurations # -# CONFIG_ANA_CMPR_ISR_IRAM_SAFE is not set +CONFIG_ANA_CMPR_ISR_HANDLER_IN_IRAM=y # CONFIG_ANA_CMPR_CTRL_FUNC_IN_IRAM is not set +# CONFIG_ANA_CMPR_ISR_CACHE_SAFE is not set +CONFIG_ANA_CMPR_OBJ_CACHE_SAFE=y # CONFIG_ANA_CMPR_ENABLE_DEBUG_LOG is not set # end of ESP-Driver:Analog Comparator Configurations @@ -948,7 +1097,8 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y # CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set # end of ESP-Driver:GPTimer Configurations @@ -958,6 +1108,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # CONFIG_I2C_ISR_IRAM_SAFE is not set # CONFIG_I2C_ENABLE_DEBUG_LOG is not set # CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set +CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y # end of ESP-Driver:I2C Configurations # @@ -976,14 +1127,21 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # # ESP-Driver:MCPWM Configurations # -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set +CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y +# CONFIG_MCPWM_ISR_CACHE_SAFE is not set # CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +CONFIG_MCPWM_OBJ_CACHE_SAFE=y # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set # end of ESP-Driver:MCPWM Configurations # # ESP-Driver:Parallel IO Configurations # +CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=y +# CONFIG_PARLIO_TX_ISR_CACHE_SAFE is not set +# CONFIG_PARLIO_RX_ISR_CACHE_SAFE is not set +CONFIG_PARLIO_OBJ_CACHE_SAFE=y # CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set # CONFIG_PARLIO_ISR_IRAM_SAFE is not set # end of ESP-Driver:Parallel IO Configurations @@ -999,9 +1157,15 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # # ESP-Driver:RMT Configurations # -# CONFIG_RMT_ISR_IRAM_SAFE is not set +CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y # CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set +# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set +CONFIG_RMT_OBJ_CACHE_SAFE=y # CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# CONFIG_RMT_ISR_IRAM_SAFE is not set # end of ESP-Driver:RMT Configurations # @@ -1027,12 +1191,28 @@ CONFIG_SPI_SLAVE_ISR_IN_IRAM=y # CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set # end of ESP-Driver:Temperature Sensor Configurations +# +# ESP-Driver:TWAI Configurations +# +# CONFIG_TWAI_ISR_IN_IRAM is not set +# CONFIG_TWAI_ISR_CACHE_SAFE is not set +# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:TWAI Configurations + # # ESP-Driver:UART Configurations # # CONFIG_UART_ISR_IN_IRAM is not set # end of ESP-Driver:UART Configurations +# +# ESP-Driver:UHCI Configurations +# +# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set +# CONFIG_UHCI_ISR_CACHE_SAFE is not set +# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:UHCI Configurations + # # ESP-Driver:USB Serial/JTAG Configuration # @@ -1069,6 +1249,13 @@ CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y CONFIG_ESP_GDBSTUB_MAX_TASKS=32 # end of GDB Stub +# +# ESP HID +# +CONFIG_ESPHID_TASK_SIZE_BT=2048 +CONFIG_ESPHID_TASK_SIZE_BLE=4096 +# end of ESP HID + # # ESP HTTP client # @@ -1105,6 +1292,7 @@ CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 +# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set # end of ESP HTTPS server # @@ -1117,15 +1305,15 @@ CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 CONFIG_ESP32H2_REV_MIN_0=y # CONFIG_ESP32H2_REV_MIN_1 is not set # CONFIG_ESP32H2_REV_MIN_2 is not set +# CONFIG_ESP32H2_REV_MIN_102 is not set CONFIG_ESP32H2_REV_MIN_FULL=0 CONFIG_ESP_REV_MIN_FULL=0 # -# Maximum Supported ESP32-H2 Revision (Rev v0.99) +# Maximum Supported ESP32-H2 Revision (Rev v1.99) # -CONFIG_ESP32H2_REV_MAX_FULL=99 -CONFIG_ESP_REV_MAX_FULL=99 -# CONFIG_ESP32H2_REV100_DEVELOPMENT is not set +CONFIG_ESP32H2_REV_MAX_FULL=199 +CONFIG_ESP_REV_MAX_FULL=199 CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 @@ -1150,6 +1338,8 @@ CONFIG_ESP32H2_UNIVERSAL_MAC_ADDRESSES=2 # Sleep Config # CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y +CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y +# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=0 # CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set @@ -1170,7 +1360,8 @@ CONFIG_RTC_CLK_CAL_CYCLES=1024 # # Peripheral Control # -CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y # end of Peripheral Control # @@ -1183,8 +1374,10 @@ CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y # GDMA Configurations # CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y -# CONFIG_GDMA_ISR_IRAM_SAFE is not set +CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y +CONFIG_GDMA_OBJ_DRAM_SAFE=y # CONFIG_GDMA_ENABLE_DEBUG_LOG is not set +# CONFIG_GDMA_ISR_IRAM_SAFE is not set # end of GDMA Configurations # @@ -1194,8 +1387,37 @@ CONFIG_XTAL_FREQ_32=y CONFIG_XTAL_FREQ=32 # end of Main XTAL Config +# +# Power Supplier +# + +# +# Brownout Detector +# +CONFIG_ESP_BROWNOUT_DET=y +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3=y +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0 is not set +CONFIG_ESP_BROWNOUT_DET_LVL=3 +CONFIG_ESP_BROWNOUT_USE_INTR=y +# end of Brownout Detector + +# +# RTC Backup Battery +# +# CONFIG_ESP_VBAT_INIT_AUTO is not set +# CONFIG_ESP_VBAT_WAKEUP_CHIP_ON_VBAT_BROWNOUT is not set +# end of RTC Backup Battery +# end of Power Supplier + CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y CONFIG_ESP_SPI_BUS_LOCK_FUNCS_IN_IRAM=y +CONFIG_ESP_INTR_IN_IRAM=y # end of Hardware Settings # @@ -1242,13 +1464,17 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # CONFIG_ESP_PHY_RF_CAL_NONE is not set # CONFIG_ESP_PHY_RF_CAL_FULL is not set CONFIG_ESP_PHY_CALIBRATION_MODE=0 +CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set # CONFIG_ESP_PHY_RECORD_USED_TIME is not set +CONFIG_ESP_PHY_IRAM_OPT=y +# CONFIG_ESP_PHY_DEBUG is not set # end of PHY # # Power Management # +CONFIG_PM_SLEEP_FUNC_IN_IRAM=y CONFIG_PM_ENABLE=y CONFIG_PM_DFS_INIT_AUTO=y # CONFIG_PM_PROFILING is not set @@ -1272,6 +1498,12 @@ CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP=y # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set # end of ESP Ringbuf +# +# ESP-ROM +# +CONFIG_ESP_ROM_PRINT_IN_IRAM=y +# end of ESP-ROM + # # ESP Security Specific # @@ -1285,6 +1517,9 @@ CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y # CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 # end of Crypto DPA Protection + +# CONFIG_ESP_CRYPTO_FORCE_ECC_CONSTANT_TIME_POINT_MUL is not set +# CONFIG_ESP_ECDSA_ENABLE_P192_CURVE is not set # end of ESP Security Specific # @@ -1294,6 +1529,7 @@ CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_64 is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_96=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=96 +CONFIG_ESP_SYSTEM_IN_IRAM=y # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set @@ -1304,7 +1540,9 @@ CONFIG_ESP_SYSTEM_RTC_EXT_XTAL=y CONFIG_ESP_SYSTEM_RTC_EXT_XTAL_BOOTSTRAP_CYCLES=0 CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y +CONFIG_ESP_SYSTEM_NO_BACKTRACE=y # CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set +# CONFIG_ESP_SYSTEM_USE_FRAME_POINTER is not set # # Memory protection @@ -1342,23 +1580,6 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y # CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS is not set CONFIG_ESP_DEBUG_OCDAWARE=y CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=3 -# end of Brownout Detector - -CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y CONFIG_ESP_SYSTEM_HW_PC_RECORD=y @@ -1373,6 +1594,7 @@ CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 # # ESP Timer (High Resolution Timer) # +CONFIG_ESP_TIMER_IN_IRAM=y # CONFIG_ESP_TIMER_PROFILING is not set CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y @@ -1437,6 +1659,14 @@ CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 # CONFIG_FATFS_IMMEDIATE_FSYNC is not set # CONFIG_FATFS_USE_LABEL is not set CONFIG_FATFS_LINK_LOCK=y +# CONFIG_FATFS_USE_DYN_BUFFERS is not set + +# +# File system free space calculation behavior +# +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior # end of FAT Filesystem support # @@ -1480,6 +1710,7 @@ CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 # # Port # +CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set @@ -1507,6 +1738,7 @@ CONFIG_FREERTOS_DEBUG_OCDAWARE=y CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y CONFIG_FREERTOS_NUMBER_OF_CORES=1 +CONFIG_FREERTOS_IN_IRAM=y # end of FreeRTOS # @@ -1519,8 +1751,6 @@ CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y CONFIG_HAL_WDT_USE_ROM_IMPL=y -CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y -CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y # CONFIG_HAL_ECDSA_GEN_SIG_CM is not set # end of Hardware Abstraction Layer (HAL) and Low Level (LL) @@ -1537,6 +1767,7 @@ CONFIG_HEAP_TRACING_OFF=y # CONFIG_HEAP_TASK_TRACKING is not set # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set CONFIG_HEAP_TLSF_USE_ROM_IMPL=y +# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set # end of Heap memory debugging # @@ -1555,11 +1786,15 @@ CONFIG_IEEE802154_PENDING_TABLE_SIZE=20 # CONFIG_IEEE802154_TIMING_OPTIMIZATION is not set # CONFIG_IEEE802154_SLEEP_ENABLE is not set # CONFIG_IEEE802154_DEBUG is not set +# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set # end of IEEE 802.15.4 # # Log # +CONFIG_LOG_VERSION_1=y +# CONFIG_LOG_VERSION_2 is not set +CONFIG_LOG_VERSION=1 # # Log Level @@ -1597,6 +1832,15 @@ CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set # end of Format + +# +# Settings +# +CONFIG_LOG_MODE_TEXT_EN=y +CONFIG_LOG_MODE_TEXT=y +# end of Settings + +CONFIG_LOG_IN_IRAM=y # end of Log # @@ -1604,7 +1848,6 @@ CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LWIP_ENABLE=y CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -# CONFIG_LWIP_NETIF_API is not set CONFIG_LWIP_TCPIP_TASK_PRIO=18 # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set # CONFIG_LWIP_CHECK_THREAD_SAFETY is not set @@ -1641,7 +1884,7 @@ CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 +CONFIG_LWIP_DHCP_OPTIONS_LEN=69 CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 @@ -1749,6 +1992,7 @@ CONFIG_LWIP_DNS_MAX_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set # CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set +# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set # end of DNS CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 @@ -1769,6 +2013,9 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y # CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set # CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set @@ -1802,6 +2049,7 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y +# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set CONFIG_MBEDTLS_PKCS7_C=y # end of mbedTLS v3.x related @@ -1822,6 +2070,7 @@ CONFIG_MBEDTLS_CMAC_C=y CONFIG_MBEDTLS_HARDWARE_AES=y CONFIG_MBEDTLS_AES_USE_INTERRUPT=y CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 +# CONFIG_MBEDTLS_AES_USE_PSEUDO_ROUND_FUNC is not set CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y CONFIG_MBEDTLS_HARDWARE_MPI=y CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y @@ -1839,6 +2088,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA1_C=y CONFIG_MBEDTLS_SHA512_C=y # CONFIG_MBEDTLS_SHA3_C is not set CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y @@ -1920,6 +2170,7 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y # CONFIG_MBEDTLS_THREADING_C is not set CONFIG_MBEDTLS_ERROR_STRINGS=y CONFIG_MBEDTLS_FS_IO=y +# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set # end of mbedTLS # @@ -1939,20 +2190,24 @@ CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y # end of ESP-MQTT Configurations # -# Newlib +# LibC # -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -# CONFIG_NEWLIB_NANO_FORMAT is not set -CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y -# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set -# end of Newlib +CONFIG_LIBC_NEWLIB=y +CONFIG_LIBC_MISC_IN_IRAM=y +CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y +CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set +# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set +# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set +CONFIG_LIBC_STDIN_LINE_ENDING_CR=y +# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set +CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y +# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set +# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set +# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set +# CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS is not set +# end of LibC # # NVS @@ -1980,6 +2235,7 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y # end of Protocomm # @@ -2021,6 +2277,8 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y # CONFIG_SPI_FLASH_AUTO_SUSPEND is not set CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 # CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set +CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration @@ -2046,7 +2304,8 @@ CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 # # Auto-detect flash chips # -CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y # CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set # CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set # CONFIG_SPI_FLASH_SUPPORT_GD_CHIP is not set @@ -2117,6 +2376,7 @@ CONFIG_UNITY_ENABLE_DOUBLE=y CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y # CONFIG_UNITY_ENABLE_FIXTURE is not set # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set # end of Unity unit testing library #