ci / test (pull_request) Successful in 1m13s
ci / firmware (wroom, sdkconfig.wroom, esp32) (pull_request) Successful in 4m39s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (pull_request) Successful in 4m41s
ci / test (push) Successful in 1m8s
ci / firmware (wroom, sdkconfig.wroom, esp32) (push) Successful in 4m9s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (push) Successful in 4m15s
24 lines
1.4 KiB
Markdown
24 lines
1.4 KiB
Markdown
STATUS: DONE
|
|
DEPENDS: I01
|
|
Notes: Poll API named `hal_temp_tick` (declared in hal_temp.h). `idf.py build` for both targets verified via CI run 38616 (no local IDF). S3 flash watchdog check not run — no device attached to this machine.
|
|
|
|
**READ:** `docs/megaplans/INTEGRATION-MEGAPLAN.md`, `main/main.c`, `components/hal_temp/*`
|
|
|
|
**IN:**
|
|
1. `hal_temp`: Generalize `hal_temp.c` to use `board_pin_temp()` instead of hardcoded macros. Compile for both targets via CMake (`IDF_TARGET esp32|esp32s3` → shared source, `PRIV_REQUIRES board_wroom|board_jc4827w543`).
|
|
2. `main.c` **bug fix**: `temp_task` currently calls `autofilm_temp_tick()` only `#ifdef AUTOFILM_BOARD_WROOM` and has **no `vTaskDelay`** — on S3 it spins at priority 2 and starves the idle task (task-WDT risk). Move the tick loop into a `hal_temp`-level poll (e.g. `hal_temp_tick()` weak per-board) or add `vTaskDelay(pdMS_TO_TICKS(750))` on the non-WROOM path so the task always blocks.
|
|
|
|
**OUT:** Motor logic, audio logic.
|
|
**FORBIDDEN:** Removing the watchdog, deleting the temp task.
|
|
|
|
**VERIFY:** `idf.py build` succeeds for both `esp32` and `esp32s3`. Flash to S3 and verify no task watchdog panics occur in the console.
|
|
|
|
**COMMITS:**
|
|
1. `Share onewire temp HAL across both boards`
|
|
2. `Fix temp_task starvation bug on non-WROOM`
|
|
|
|
**DoD checkboxes:**
|
|
- [x] `hal_temp` generalized to use board accessors.
|
|
- [x] `temp_task` starvation bug fixed.
|
|
- [x] Build succeeds on both targets.
|