- Turn an AURIX Development Studio (ADS) iLLD project into a CMake build with
build.cmdandflash.cmdwrappers. See Prepare the project and tools. - Program the built HEX file with AURIX Flasher and check that the target starts. See Program and verify startup.
- Halt, set breakpoints, step, and read state on TriCore cores from a hardware script. See Debug TriCore over TCF.
AURIX setup and debugging run only on Windows, because ADS, Infineon DAS, and the AURIX debug agent are Windows-only. On macOS or Linux, AURIX project setup isn’t offered, and debugging reports that it requires Windows. The Infineon tools are separate downloads under Infineon’s own licence terms; Embedder doesn’t bundle them.
Prepare the project and tools
- Install ADS and CMake. Setup uses Ninja when it’s installed and otherwise falls back to the make tool that ships with ADS. You can use an external TriCore GCC, such as HighTec, but ADS is still required for its build utilities.
- Confirm that the project root contains
.cprojectand an extracted, non-emptyLibraries/iLLD/folder. If the library is missing, right-click the project in ADS and select Add iLLD. - Check the build configuration in
.cproject. Setup copies the CPU, optimization, debug, define, and linker settings from the External-GCC Debug configuration, or from Release if there’s no Debug one. TC2xx and TC3xx projects without an External-GCC configuration use the device family’s default CPU flag. TC4xx projects must have an External-GCC configuration and a GCC linker script; supply the script if the project doesn’t contain one. - Move any outputs you need out of
build/, and review existing CMake files and wrappers before you continue.
C:\Infineon\AURIX-Studio-* and picks the newest full edition. It skips the free limited edition unless you give its path. For a nonstandard location, give absolute Windows paths to the project, the ADS installation, the compiler folder, and any linker script, or set AURIX_STUDIO_ROOT to the ADS installation. An external compiler folder must contain tricore-elf-gcc.exe, tricore-elf-objcopy.exe, tricore-elf-size.exe, tricore-elf-ar.exe, and tricore-elf-ranlib.exe.
If you don’t supply a linker script, setup uses the one .cproject names, then a GCC linker script already in the project root, then copies the device’s default script from ADS into the project. TC4xx has no default script to copy.
Generate and check the build
Ask Embedder to prepare the project, in Act or Debug mode:CMakeLists.txt, cmake/aurix-tricore-toolchain.cmake, build.cmd, and flash.cmd. Verify that the build succeeds for the intended CPU. A successful build produces build/app.hex for programming and build/app.elf, a debug build with symbols, for debugging. To build again from the project folder on that machine:
.\build.cmd clean removes CMake build outputs. Other arguments pass through to the CMake build.
Configure AURIX Flasher
Install the AURIX Flasher Software Tool separately on the Windows machine connected to the target. Setup looks forAURIXFlasher.exe in this order:
- A path you give during setup (the executable or its folder).
- The
AURIX_FLASHER_PATHenvironment variable, set before you start Embedder. - The newest
C:\Infineon\AURIXFlasher*folder. - Your
PATH.
AURIX_FLASHER_PATH, and the executable isn’t there, setup stops with AURIXFlasher.exe not found. Correct the path and run setup again.
If setup doesn’t find the flasher anywhere, it still writes flash.cmd with a placeholder FLASHER line. Install the flasher, then repeat setup with its path or edit that line to the full path of AURIXFlasher.exe. Until then, flash.cmd stops with a message asking for the path. It also stops if build/app.hex doesn’t exist.
flash.cmd runs AURIX Flasher on build/app.hex with the flasher’s default erase, program, verify, and start steps. Arguments after flash.cmd pass through to the flasher. Confirm the connected board, the programming connection, and these settings before you use it. Setup doesn’t establish compatibility with every AURIX board or probe.
Program and verify startup
- Connect and power the intended target according to its board instructions. Close other programming or debugger sessions.
-
Confirm that
build/app.hexcomes from a successful build for that target and thatflash.cmdpoints at the flasher installed on this machine. -
Ask Embedder to run the configured command and check the result:
Keep the project commands
If the project has noEMBEDDER.md, setup creates a starter file with build_command = ./build.cmd. It adds flash_command = ./flash.cmd only when it found the flasher; otherwise the line is commented out until you configure flash.cmd. Setup never changes an existing EMBEDDER.md, so add these commands yourself after you verify them.
The generated CMake files and wrappers contain paths from this workstation. Keep them out of commits and run setup again on each machine. Keep the project’s source configuration, target details, and expected boot checks available for that setup.
Troubleshoot
- Setup unavailable: run Embedder on Windows with local access to the project and ADS. Setup isn’t available in Plan mode.
- Missing iLLD: extract the library into
Libraries/iLLD/. An empty folder isn’t enough. - Several device folders under
Libraries/iLLD/: setup can’t tell which device to target unless the project folder name includes it. Keep only the target device’s folder. - TC4xx configuration rejected: add an External-GCC configuration in ADS, and give a GCC linker script.
- Unknown CPU setting: the ADS release is newer than this version of Embedder supports. Update Embedder.
- ADS not found, or only the limited edition installed: give the absolute installation path or set
AURIX_STUDIO_ROOT. Give the path explicitly to use the limited edition. - Compiler not found in ADS: give the folder that contains
tricore-elf-gcc.exeand the other TriCore GCC tools. cmake.exenot found: install CMake and add it toPATH, or install it underC:\Program Files\CMake.- Flasher path not configured: install AURIX Flasher and set the
FLASHERline inflash.cmdbefore programming. - HEX file missing: fix the build and confirm
build/app.hexbefore you retry. - Programming succeeds but no boot: check the flasher’s start and reset settings, board power, and firmware output before you assume another flash is needed.
Debug TriCore over TCF
Use theaurix.* helpers in a hardware script to debug TriCore targets. Embedder’s GDB integration doesn’t support TriCore, so gdb.* helpers don’t apply. Embedder works through Infineon’s AURIX debug agent, aurix-debugger.exe, which reaches the target through Infineon DAS.
Save scripts in .embedder/hardware/ and run them as described in Hardware scripts.
Requirements
- Windows, with the probe attached to the same machine. AURIX debugging isn’t available through a remote hardware bridge.
- Infineon DAS, a free download that needs no licence. Embedder looks for it under
C:\Program Files\DAS64and similar folders; setDAS_HOMEif you installed it elsewhere. The DAS tray service must be running. - The AURIX debug agent. Embedder uses one from ADS or another local install, or downloads one with your permission. See Find or download the debug agent.
- The board’s debug connection over USB, such as its on-board DAP or miniWiggler.
- An ELF built with symbols that matches the firmware on the target, such as the
build/app.elfthat project setup produces. Without it, Embedder can’t resolve source lines or globals.
Find or download the debug agent
aurix.connect() tries each agent it finds, in this order, and keeps the first one that connects and loads the ELF:
The connect result reports the agent it used as
agent_source and agent_path.
When no agent is installed at all, Embedder asks Download the AURIX TCF debug agent? before it downloads anything. The prompt names the files, their source, the download size, and the folder they go into, and notes that they’re Infineon-owned tools under Infineon’s own licences. Approve it to continue. Embedder saves the tools under ~/.embedder/tools/aurix/.
The downloaded agent is version 1.53, the version Embedder is tested with. Some ADS releases ship a newer agent that can connect but can’t load the ELF, so source breakpoints never bind. Embedder skips an agent like that and tries the next one. If the only agent installed is one of these, Embedder doesn’t offer the download, and connecting fails with No usable AURIX TCF agent. Set AURIX_BIN_DIR to a folder with a working agent, or pass agent_path.
Connect and set a breakpoint
Callaurix.connect() first, then set breakpoints and control execution. Most calls return a dict, so scripts can print results as JSON. aurix.eval() returns the value as a string, aurix.read_memory() returns bytes, and the listing helpers return lists.
.embedder/hardware/tricore_boot_check.py
aurix.connect(elf, device=None, entry='core0_main', core=0, svd=None, timeout_seconds=30.0, agent_path=None) starts the agent, loads the ELF’s symbols, and halts the target:
Connecting attaches to the firmware already on the target. Program it with AURIX Flasher first.
The other helpers cover breakpoints, run control, and state:
A breakpoint
condition is evaluated by Embedder after each hit, not on the target. Every false hit stops and resumes the target, so a condition in a hot loop looks like a hang. Use an unconditional breakpoint and check values with aurix.eval() instead.
When a run-control call times out, Embedder halts the target and returns timed_out: True with halted_by_timeout: True, so you can inspect where it stopped. If the debug agent stops responding, the result reports server_restarted or disconnected instead.
Cores, not threads
AURIX exposes cores, not threads. Core IDs look likeS0.D0.C0. Every operation takes an optional core=. When you leave it out, Embedder uses a halted core, so single-core scripts don’t need it.
A breakpoint halts every core. stop["core"] is the core Embedder reports as the cause, and stop["suspended_cores"] lists every halted core. When a specific core matters, read its stack explicitly.
What the helpers can’t do
Embedder reports an error in a script’s diagnostics when the script calls one of these:
The helpers also have no RTT or ITM capture.
Finish the session
An AURIX session holds DAS and the probe while it’s open. End scripts withaurix.disconnect(). Embedder also disconnects the session when the script that opened it finishes, including after an error.
Troubleshoot debugging
- Requires Windows: run Embedder on the Windows machine attached to the target.
- Not available through a remote hardware bridge: run Embedder on the Windows machine with the probe, in a session that doesn’t use a bridge.
- Infineon DAS is required: install DAS, or set
DAS_HOMEto its installation folder, then retry. - No AURIX target detected: connect the board’s DAP or miniWiggler over USB and confirm the DAS tray service is running.
- Multiple AURIX targets are connected: pass
device=with one of the names the error lists. - No usable AURIX TCF agent: the error lists each agent Embedder tried. Set
AURIX_BIN_DIRto a folder whoseaurix-debugger.exeworks, or remove the override so Embedder tries the other agents it finds. - Breakpoint not planted: check the file name and line, confirm the line contains code, and check
image_check.