Project Configuration
Firmware.inverse
The primary project manifest. Located at workspace root.
{
"neuralInverseFirmware": true,
"version": "1",
"mcu": "STM32F407VGT6",
"board": "STM32F4DISCOVERY",
"rtos": "FreeRTOS",
"buildSystem": "cmake",
"hal": "stm32-hal",
"compliance": ["misra-c-2012", "iec-61508"],
"datasheets": ["docs/stm32f407_rm.pdf", "docs/stm32f407_ds.pdf"],
"svd": "docs/STM32F407.svd",
"createdAt": 1742300000000
}| Field | Required | Description |
|---|---|---|
neuralInverseFirmware | Yes | Must be true â discriminator field |
version | Yes | Schema version ("1") |
mcu | Yes | Exact MCU variant from database |
board | No | Board name (shown in status bar) |
rtos | No | RTOS: FreeRTOS, Zephyr, Embassy, ThreadX, etc. |
buildSystem | No | cmake, platformio, make, esp-idf, cargo, zephyr, arduino |
hal | No | HAL framework identifier |
compliance | No | Array of framework IDs |
datasheets | No | Relative paths to PDF datasheets |
svd | No | Relative path to SVD file |
createdAt | No | Creation timestamp (epoch ms) |
On Load Behavior
When Firmware.inverse is detected:
- Session starts automatically with the specified MCU
- SVD file is parsed â register maps loaded
- PDF datasheets are parsed â timing constraints, errata extracted
- Compliance frameworks activated
- Hardware context injected into all AI system prompts
NI.md
Project-specific configuration for the AI agent. Auto-loaded at every session start.
# NI.md
## Buildmake -j$(nproc) BOARD=stm32f4discovery
## Flashopenocd -f interface/stlink.cfg -f target/stm32f4x.cfg -c "program build/firmware.elf verify reset exit"
## Debuggdb openocd swd
## Target
STM32F407VGT6
## Rules
- Always use HAL_Delay() instead of busy-wait loops
- DMA transfers must use double-buffering for audio streams
- All ISRs must complete within 10Ξs
## IMPORTANT
- Never modify vendor/STM32F4xx_HAL_Driver/ files
- Flash writes must be sector-alignedThe agent reads NI.md and follows its rules during code generation and modifications.
.niignore
Blocks Neural Inverse from editing certain files. Uses gitignore-compatible syntax.
# Vendor HAL â never edit
vendor/
# Generated files
*.bin
*.hex
*.elf
**/generated/**
# Re-include specific generated config
!src/gen/config.h
# Third-party libraries
lib/CMSIS/
lib/FreeRTOS/
Check if a file is blocked:
> fw_niignore_check src/vendor/stm32f4xx_hal_spi.c.inverse/ Directory
Workspace-local firmware development artifacts:
.inverse/
âââ checkpoints/ # Workspace snapshots
â âââ cp_001.json
â âââ cp_002.json
âââ captures/ # Logic analyzer captures
â âââ cap_abc123/
âââ rtt/ # RTT channel logs
â âââ session_001/
â âââ ch0.log
â âââ ch1.log
âââ hil-tests/ # HIL test definitions
â âââ uart_loopback.json
â âââ power_sleep.json
âââ hil-results/ # HIL test results
âââ 1742300000_uart_loopback.jsonCheckpoints
Workspace state snapshots for rollback and experimentation:
> fw_checkpoint_create label="before DMA refactor"> fw_checkpoint_list> fw_checkpoint_rewind cp_001> fw_checkpoint_fork cp_001 label="experimental branch"Checkpoints capture file state so you can safely experiment with hardware configurations and revert if something breaks.
Last edited