mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-08-27 21:19:46 +00:00
- migrate ESP board-specific implementations and runtime adapters into boards/* - continue GAT562/Tab5/UI runtime alignment across app and board layers - sync BLE and runtime integrations, and apply repository clang-format rules
apps/esp_idf
Common ESP-IDF application shell root.
Purpose:
- hold the shared ESP-IDF app-shell composition that is not tied to a single board
- be the canonical ESP-IDF component root for the repository
- host multiple IDF targets under
targets/instead of growing one full app shell per board
Dependency shape:
apps/esp_idf/*owns target-independent IDF app assemblyapps/esp_idf/targets/<board>/*owns target metadata such assdkconfig.defaults, partitions, and board selection intentplatform/esp/idf_common/*owns shared IDF platform glueplatform/esp/boards/<board>/*owns board-specific pin/runtime capabilities
Current status:
- this directory is now the active ESP-IDF component root
- board choice is selected by the top-level
TRAIL_MATE_IDF_TARGETCMake cache variable - generated
sdkconfigfiles now live under the chosen build directory instead of the source root, sobuild.tab5/build.t_display_p4do not reuse stalesdkconfig.<target>artifacts - shared
app_main(),runtime_config,app_registry,app_runtime_access,app_facade_runtime,loop_runtime, andstartup_runtimenow live here startup_runtimeandloop_runtimeare now thin adapters; the reusable boot/menu shell lives inmodules/ui_shared/src/ui/startup_shell.cppand the loop skeleton lives inmodules/ui_shared/src/ui/loop_shell.cppapp_runtime_accessis now a thin status facade and usesplatform/esp/idf_common/app_runtime_supportfor lifecycle ticking- IDF now compiles the full shared startup/menu/status runtime instead of the temporary skeleton path
- unsupported capability pages are hidden from the IDF main menu instead of showing placeholder business pages
targets/tab5andtargets/t_display_p4are the first two real IDF targets wired into this shared shellapps/esp_idf/srcno longer carries page implementations; page code now lives undermodules/ui_shared- retired ESP-IDF compatibility stub files have been removed; the component anchor now lives in
src/idf_component_anchor.cpp
Recommended invocation:
idf.py -B build.tab5 -DTRAIL_MATE_IDF_TARGET=tab5 reconfigure buildidf.py -B build.tab5 -DTRAIL_MATE_IDF_TARGET=tab5 -p COM6 flash- for Tab5, prefer starting
monitorseparately after a manualRESETpress instead of chainingflash monitor, because auto-reset can leave ESP32-P4 in ROM download mode - do not rely on a source-root
sdkconfig.tab5; the build directory now owns the generated config state - VS Code workspace tasks now provide split
IDF Tab5: Build,IDF Tab5: Flash, andIDF Tab5: Monitorentries throughtools/vscode/run_idf_task.ps1