Neural Inverse is Open Source →
DocsFirmware Development

Firmware Development

Neural Inverse includes a purpose-built firmware development environment. When you open a firmware project, the IDE activates hardware context — loading your MCU's register maps, datasheet data, timing constraints, and compliance rules directly into the LLM context for every code completion and agent interaction.

Firmware development is available in the open source edition.

Supported Hardware

MCU Architectures

ArchitectureExamples
Cortex-M0 / M0+STM32F0, STM32L0, RP2040
Cortex-M3STM32F1, STM32F2, LPC1768
Cortex-M4STM32F4, STM32G4, nRF52, SAM4
Cortex-M7STM32F7, STM32H7, i.MX RT
Cortex-M23 / M33STM32L5, STM32U5, nRF9160
Cortex-M55 / M85Arm Cortex-M55, Corstone-315
Cortex-A / Cortex-RApplication and real-time profiles
RISC-VGD32VF103, ESP32-C3, ESP32-C6
Xtensa LX6/LX7ESP32, ESP32-S2, ESP32-S3
TriCoreInfineon AURIX TC3xx (automotive)
C28x / MIPS32TI C2000 real-time DSP
AVRATmega, ATtiny, XMEGA
PICPIC16, PIC18, PIC32
MSP430Texas Instruments MSP430
ARM7TDMIClassic ARM7 devices
PowerPCNXP MPC5xxx, Power Architecture
Renesas RXRX100, RX200, RX600
8051Legacy 8051-compatible devices

Manufacturers

STMicroelectronics, Nordic Semiconductor, Espressif, NXP, Texas Instruments, Microchip, Renesas, Infineon, Arm, Raspberry Pi Foundation, and others. Total: 357+ MCU variants across 11 manufacturers.

Setting Up a Firmware Session

  1. Open the Firmware Environment panel from the aux sidebar.
  2. Select your MCU family and variant (e.g. STM32F4STM32F407VGT6).
  3. Optionally specify a board name.
  4. The session loads automatically — SVD register maps are parsed and injected.

The session state is persisted to a Firmware.inverse file in your workspace root. On next open, the IDE restores the MCU config, loaded SVD files, datasheets, and last-used serial port config.

SVD Auto-Load

Neural Inverse ships with bundled SVD files for common MCU variants. When you start a firmware session, the matching SVD is parsed automatically.

SVD data provides:

  • Peripheral list — all peripherals available on the MCU (e.g. USART1, TIM2, SPI1, ADC1)
  • Register maps — address offsets, reset values, access types for every register
  • Bit fields — name, bit offset, bit width, access type, description, and enumerated values for every bit field

This data is injected into the system prompt for every LLM interaction while the firmware session is active.

You can also load custom .svd files for MCUs not in the bundled database.

Datasheet Intelligence

Drop a PDF datasheet into the Firmware Environment panel. Neural Inverse uses your configured LLM to extract:

  • Peripheral register maps — structured register/bit-field data from datasheets that don't have SVD files
  • Timing constraints — setup/hold times, clock frequencies, rise/fall requirements
  • Errata — silicon errata and workarounds

Extracted data is merged with SVD data into the active session context.

Hardware Agent Tools

When a firmware session is active, 22+ specialized fw_* tools are registered and available to the chat and Power Mode agents:

Core Hardware Tools

ToolWhat it does
fw_get_mcu_infoReturns MCU config: family, variant, core, clock, flash/RAM sizes, FPU, MPU, DSP
fw_list_peripheralsLists all peripheral names available in the session
fw_get_register_mapReturns full register map for a named peripheral
fw_get_peripheral_configReturns config (clock, pins, mode) for a peripheral
fw_get_bit_field_infoReturns bit field definition for a specific register field

Build Analysis Tools

ToolWhat it does
Build system detectionDetects CMake, Make, IAR, Keil, and other build systems
Map file parserParses .map files to show section sizes and symbol placement
Flash/RAM usageReports flash and RAM consumption vs. available capacity

Serial Tools

ToolWhat it does
Serial monitor connectOpens a serial connection to the target device
Serial readReads data from the serial port
Serial writeSends data to the device

Debug Tools

Run and interact with on-chip debuggers (OpenOCD, J-Link, pyOCD).

Code Generation Tools

Generate peripheral initialization code, ISR handlers, register configuration sequences, and driver stubs — all with correct register addresses and bit-field values from the loaded SVD.

Peripheral Intelligence Tools

Ask natural language questions about a peripheral and get answers grounded in the loaded SVD and datasheet data.

Compliance Tools

Check code against active compliance frameworks inline during coding.

Compliance Frameworks

Set one or more frameworks when starting a session:

FrameworkDomain
MISRA-C 2012General embedded C
MISRA-C 2023Updated general embedded C
CERT-CSecure coding
IEC 62304Medical device software
ISO 26262Automotive functional safety
DO-178CAirborne software
IEC 61508Industrial functional safety
AUTOSARAutomotive software architecture

Active frameworks are included in the system prompt and used by compliance tools during the session.

Status Bar

While a firmware session is active, the Neural Inverse status bar shows the current MCU variant and active peripheral. Click to open the Firmware Environment panel.


Was this page helpful?