# Simulink Customize A2l

Customize A2L (ASAP2) files generated from Simulink models using coder.asap2 and...

- Repository: https://github.com/matlab/simulink-agentic-toolkit (1305 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-10-29
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-customize-a2l -g -a claude-code -y`
Codex: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-customize-a2l -g -a codex -y`
Cursor: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-customize-a2l -g -a cursor -y`
Gemini CLI: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-customize-a2l -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add matlab/simulink-agentic-toolkit`

## Description

Customize A2L (ASAP2) files generated from Simulink models using coder.asap2 and coder.mapping APIs. Use this skill when adding COMPU_METHODs, creating GROUPs, converting STD_AXIS to COM_AXIS, adding BIT_OPERATIONs, creating VARIANT_CODING, excluding measurements or struct elements, removing DEFAULT_EVENT_LIST, or any A2L customization for calibration tool compatibility (INCA, CANape). Also use when the user mentions ASAP2, ECU calibration data, A2L export.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Customize A2L Files

Customize A2L (ASAP2) files generated from Simulink models using the `coder.asap2` and `coder.mapping` APIs, avoiding silent errors and undocumented pitfalls.

## When to Use

- Adding or modifying COMPU_METHODs (LINEAR, RAT_FUNC, TAB_VERB, IDENTICAL)
- Creating or modifying GROUPs in the A2L file
- Converting STD_AXIS to COM_AXIS for lookup tables
- Adding BIT_OPERATION (LEFT_SHIFT, RIGHT_SHIFT, SIGN_EXTEND) to measurements
- Creating VARIANT_CODING (VarCriterion, VarCharacteristic)
- Excluding inports, outports, or struct elements from the A2L
- Removing DEFAULT_EVENT_LIST or other IF_DATA blocks
- Any customization passed via `CustomEcuDescriptions` to `coder.asap2.export`

## When NOT to Use

- Reading or parsing existing A2L files (use Vehicle Network Toolbox `a2lfile`)
- Configuring XCP/CAN transport layers
- Setting up Simulink model code generation (storage classes, data dictionaries)
- General Embedded Coder build workflows without A2L customization

## Core Workflow

### Decision: Direct export vs. customization workflow

- **No element customization needed** (only configuration like excluding struct elements or DEFAULT_EVENT_LIST): call `coder.asap2.export` directly with name-value options. No `getEcuDescriptions` needed.
- **Element customization needed** (adding/modifying/deleting measurements, characteristics, groups, etc.): use the full `getEcuDescriptions` → customize → export workflow.

```matlab
% === Path A: Config-only (no element changes) ===
load_system(modelName);
slbuild(modelName);
coder.asap2.export(modelName, SupportStructureElements=false, IncludeDefaultEventList=false);

% === Path B: Element customization ===
load_system(modelName);
slbuild(modelName);

% 1. Create ECU descriptions, pass ALL configuration options here
descObj = coder.asap2.getEcuDescriptions(modelName, ...
    SupportStructureElements=false, ...
    IncludeDefaultEventList=false);

The rest: https://github.com/matlab/simulink-agentic-toolkit/blob/HEAD/skills-catalog/code-generation/simulink-customize-a2l/SKILL.md
