Firmware Implementation
Target: $ARGUMENTS
Implement firmware code with mandatory requirement traceability tags, following ESP-IDF or PlatformIO patterns.
References (MUST READ)
Read these before proceeding:
references/esp-idf-patterns.md— Component structure, FreeRTOS, sdkconfig, idf.pyreferences/platformio-patterns.md— platformio.ini, pio commands, library managementreferences/c-safety-rules.md— MISRA-C cppcheck flags, clang-tidy, tagging rules
Workflow
Detect framework:
CMakeLists.txt+sdkconfig*→ ESP-IDFplatformio.ini→ PlatformIO- Neither → ask user which framework to use
Read existing requirements — Check for
docs/requirements.mdto understand which SW-REQs need implementingImplement code with mandatory docstrings on every new function:
/** * @brief <What this function does> * * @requirement SW-REQ-NNN * @parent PRD-REQ-NNN * @test TEST-NNN * * @param ... * @return ... */Create test stubs in
test/with matching@test TEST-NNNreferencesLint with cppcheck:
cppcheck --addon=misra.py --std=c11 --enable=all --xml src/ 2> misra-report.xmlBuild:
- ESP-IDF:
idf.py build - PlatformIO:
pio run
- ESP-IDF:
Report — Count tagged functions, list any warnings
Rules
- Every new function must have
@requirement,@parent, and@testtags - Follow existing code style (indentation, naming conventions) in the project
- Use ESP-IDF error handling patterns (
ESP_ERROR_CHECK,esp_err_treturns) - Do not suppress MISRA warnings without documenting the deviation
- Create header declarations alongside implementations
- Test stubs must compile even if test logic is not yet implemented