fupsrl

08 — Flash Programming with XCP ProF

2 min read Updated 15 July 2026

INCAZ can program an Intel HEX data set to an ECU through the XCP PGM resource. Treat flashing as a controlled engineering operation: use a verified A2L/HEX/ECU combination, stable power and network, and a recovery plan. The demo ECU is the right environment for the first end-to-end exercise.

Open the flash dialog

Select the relevant project/data set, then choose Flash → Flash ECU (ProF)… or the corresponding dataset context action. The flash configuration is stored with the project as a ProF-style configuration and can be reused.

Flash configuration

Setting Meaning
Name/description Identifies the reusable flash procedure for the project.
Ranges Optional address ranges. Empty means program all HEX segments; defined ranges restrict what is programmed.
Clear before program Requests the target clear selected memory before transfer.
Verify checksum Requests a best-effort XCP BUILD_CHECKSUM check after programming segments.
Reset after program Sends PROGRAM_RESET after successful programming so the ECU can restart.
Seed & key unlock PGM Unlocks protected programming resources first when the target requires it and an approved mechanism is configured.
Maximum segment gap Controls how nearby HEX segments are merged into programming ranges.

Programming sequence

PROGRAM_START
  → PROGRAM_CLEAR (per selected segment, when enabled)
  → PROGRAM (block transfer)
  → BUILD_CHECKSUM (when enabled and supported)
  → PROGRAM_RESET (when enabled)

INCAZ displays progress and keeps a flash log. If the user aborts, INCAZ attempts to send PROGRAM_RESET; target-specific recovery behaviour still depends on the ECU.

Pre-flash checklist

  1. Use a known, version-controlled HEX image and matching ECU/A2L release.
  2. Confirm programming permissions, power supply, network stability, and target recovery procedure.
  3. Review active ranges. Never assume all HEX segments are safe to program on every ECU.
  4. Close competing calibration tools and stop unnecessary measurement sessions.
  5. Ensure the correct target is selected; on a shared test network, verify the host/IP deliberately.
  6. Record the image identifier, operator, time, target software version, and result.

After flashing

Wait for the ECU restart, reconnect, and validate the expected software identity/version using the target’s normal engineering procedure. Re-import/reselect matching A2L and HEX files if the software release changed. A successful transfer progress bar is not by itself proof that the intended application has booted correctly.

Do not use the flash function when

  • The target is safety-critical or operating a vehicle/actuator without an approved flashing procedure.
  • Power or network quality is uncertain.
  • The HEX source, target compatibility, memory ranges, or recovery strategy are unknown.
  • You do not have authorization to unlock/program the ECU.