You are on page 1of 20

ASAP2_VERSION 1 61

/begin PROJECT ASAP2_Example "" block "PREDEFINED"


taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];

};
block "XCP_ON_UDP_IP" struct {
uint;
uint;
taggedunion {
"HOST_NAME" char[256];
"ADDRESS" char[15];
};
taggedstruct {
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"OPTIMISATION_TYPE_DEFAULT" = 0,
"OPTIMISATION_TYPE_ODT_TYPE_16" = 1,
"OPTIMISATION_TYPE_ODT_TYPE_32" = 2,
"OPTIMISATION_TYPE_ODT_TYPE_64" = 3,
"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT" = 4,
"OPTIMISATION_TYPE_MAX_ENTRY_SIZE" = 5
};
enum {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"IDENTIFICATION_FIELD_TYPE_ABSOLUTE" = 0,
"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE" = 1,
"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD" = 2,
"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED" = 3
};
enum {
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE" = 1,
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD" = 2,
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD" = 4,
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG" = 8
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE" = 1,
"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD" = 2,
"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD" = 4,
"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG" = 8
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"UNIT_1NS" = 0,
"UNIT_10NS" = 1,
"UNIT_100NS" = 2,
"UNIT_1US" = 3,
"UNIT_10US" = 4,
"UNIT_100US" = 5,
"UNIT_1MS" = 6,
"UNIT_10MS" = 7,
"UNIT_100MS" = 8,
"UNIT_1S" = 9
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
block "XCP_ON_USB" struct {
uint;
uint;
uint;
uchar;
enum {
"HEADER_LEN_BYTE" = 0,
"HEADER_LEN_CTR_BYTE" = 1,
"HEADER_LEN_FILL_BYTE" = 2,
"HEADER_LEN_WORD" = 3,
"HEADER_LEN_CTR_WORD" = 4,
"HEADER_LEN_FILL_WORD" = 5
};
taggedunion {
block "OUT_EP_CMD_STIM" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
};
};
taggedunion {
block "IN_EP_RESERR_DAQ_EVSERV" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
};
};
taggedstruct {
"ALTERNATE_SETTING_NO" uchar;
"INTERFACE_STRING_DESCRIPTOR" char[101];
(block "OUT_EP_ONLY_STIM" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
})*;
(block "IN_EP_ONLY_DAQ" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
})*;
block "IN_EP_ONLY_EVSERV" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
};
(block "DAQ_LIST_USB_ENDPOINT" struct {
uint;
taggedstruct {
"FIXED_IN" uchar;
"FIXED_OUT" uchar;
};
})*;
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"OPTIMISATION_TYPE_DEFAULT" = 0,
"OPTIMISATION_TYPE_ODT_TYPE_16" = 1,
"OPTIMISATION_TYPE_ODT_TYPE_32" = 2,
"OPTIMISATION_TYPE_ODT_TYPE_64" = 3,
"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT" = 4,
"OPTIMISATION_TYPE_MAX_ENTRY_SIZE" = 5
};
enum {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"IDENTIFICATION_FIELD_TYPE_ABSOLUTE" = 0,
"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE" = 1,
"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD" = 2,
"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED" = 3
};
enum {
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE" = 1,
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD" = 2,
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD" = 4,
"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG" = 8
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE" = 1,
"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD" = 2,
"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD" = 4,
"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG" = 8
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"UNIT_1NS" = 0,
"UNIT_10NS" = 1,
"UNIT_100NS" = 2,
"UNIT_1US" = 3,
"UNIT_10US" = 4,
"UNIT_100US" = 5,
"UNIT_1MS" = 6,
"UNIT_10MS" = 7,
"UNIT_100MS" = 8,
"UNIT_1S" = 9
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
};
};

};
/end A2ML

/*
===================================================================================
=========== */
/*
*/
/* Common parameters valid for the whole ASAP2 file
*/
/*
*/
/*
===================================================================================
=========== */

/begin MOD_COMMON ""


DEPOSIT ABSOLUTE
BYTE_ORDER MSB_LAST
ALIGNMENT_BYTE 1
ALIGNMENT_WORD 2
ALIGNMENT_LONG 4
ALIGNMENT_FLOAT32_IEEE 4
ALIGNMENT_FLOAT64_IEEE 4
/end MOD_COMMON

/*
===================================================================================
=========== */
/*
*/
/* XCP Interface description
*/
/*
*/
/*
===================================================================================
=========== */

/begin IF_DATA XCP


/begin PROTOCOL_LAYER
0x100 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x8 0x8 BYTE_ORDER_MSB_LAST
ADDRESS_GRANULARITY_BYTE
OPTIONAL_CMD SET_REQUEST
OPTIONAL_CMD GET_SEED
OPTIONAL_CMD UNLOCK
OPTIONAL_CMD SET_MTA
OPTIONAL_CMD SHORT_DOWNLOAD
OPTIONAL_CMD PROGRAM_START
OPTIONAL_CMD PROGRAM_CLEAR
OPTIONAL_CMD PROGRAM
OPTIONAL_CMD PROGRAM_RESET
OPTIONAL_CMD GET_PGM_PROCESSOR_INFO
OPTIONAL_CMD GET_SECTOR_INFO
OPTIONAL_CMD PROGRAM_PREPARE
OPTIONAL_CMD PROGRAM_NEXT
OPTIONAL_CMD PROGRAM_MAX
OPTIONAL_CMD PROGRAM_VERIFY
OPTIONAL_CMD TRANSPORT_LAYER_CMD
OPTIONAL_CMD GET_ID
OPTIONAL_CMD UPLOAD
OPTIONAL_CMD SHORT_UPLOAD
OPTIONAL_CMD BUILD_CHECKSUM
OPTIONAL_CMD DOWNLOAD_NEXT
OPTIONAL_CMD SET_CAL_PAGE
OPTIONAL_CMD GET_CAL_PAGE
OPTIONAL_CMD CLEAR_DAQ_LIST
OPTIONAL_CMD SET_DAQ_PTR
OPTIONAL_CMD WRITE_DAQ
OPTIONAL_CMD SET_DAQ_LIST_MODE
OPTIONAL_CMD GET_DAQ_LIST_MODE
OPTIONAL_CMD START_STOP_DAQ_LIST
OPTIONAL_CMD FREE_DAQ
OPTIONAL_CMD ALLOC_DAQ
OPTIONAL_CMD ALLOC_ODT
OPTIONAL_CMD ALLOC_ODT_ENTRY
OPTIONAL_CMD START_STOP_SYNCH
OPTIONAL_CMD DOWNLOAD
OPTIONAL_CMD MODIFY_BITS
OPTIONAL_CMD GET_PAG_PROCESSOR_INFO
OPTIONAL_CMD GET_SEGMENT_INFO
OPTIONAL_CMD GET_PAGE_INFO
OPTIONAL_CMD SET_SEGMENT_MODE
OPTIONAL_CMD GET_SEGMENT_MODE
OPTIONAL_CMD COPY_CAL_PAGE
OPTIONAL_CMD GET_DAQ_CLOCK
OPTIONAL_CMD READ_DAQ
OPTIONAL_CMD GET_DAQ_LIST_MODE
OPTIONAL_CMD DOWNLOAD_MAX
COMMUNICATION_MODE_SUPPORTED
BLOCK
SLAVE
MASTER 0x14 0x5
/end PROTOCOL_LAYER
/begin DAQ
STATIC 0x3 0x2 0x0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_DAQ
IDENTIFICATION_FIELD_TYPE_ABSOLUTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0x4
OVERLOAD_INDICATION_EVENT
PRESCALER_SUPPORTED
/begin TIMESTAMP_SUPPORTED
0x1 SIZE_DWORD UNIT_1US
/end TIMESTAMP_SUPPORTED
/begin DAQ_LIST
0x0
DAQ_LIST_TYPE DAQ
MAX_ODT 0x5
MAX_ODT_ENTRIES 0x7
/end DAQ_LIST
/begin DAQ_LIST
0x1
DAQ_LIST_TYPE DAQ
MAX_ODT 0x4
MAX_ODT_ENTRIES 0x7
/end DAQ_LIST
/begin DAQ_LIST
0x2
DAQ_LIST_TYPE DAQ
MAX_ODT 0x3
MAX_ODT_ENTRIES 0x7
/end DAQ_LIST
/begin EVENT
"5ms" "5ms" 0x0 DAQ 0xFF 0x5 0x6 0xFF
/end EVENT
/begin EVENT
"extEvent" "extEvent" 0x1 DAQ 0xFF 0x1 0x9 0xFF
/end EVENT
/end DAQ
/begin XCP_ON_CAN
0x100
CAN_ID_BROADCAST 0x52
CAN_ID_MASTER 0x51
CAN_ID_SLAVE 0x50
BAUDRATE 0x7A120
/end XCP_ON_CAN
/end IF_DATA

/*
===================================================================================
=========== */
/*
*/
/* MOD_PAR with the memory segment descriptions
*/
/*
*/
/*
===================================================================================
=========== */

/begin MOD_PAR ""


NO_OF_INTERFACES 1

/begin MEMORY_SEGMENT ECU_Code


"Memory segment for code part of the ECU"
DATA FLASH EXTERN 0x16000 0x86C -1 -1 -1 -1 -1
/begin IF_DATA XCP
/begin SEGMENT
0x0 0x2 0x0 0x0 0x0
/begin PAGE
0x0 ECU_ACCESS_DONT_CARE XCP_READ_ACCESS_WITH_ECU_ONLY
XCP_WRITE_ACCESS_NOT_ALLOWED
/end PAGE
/begin PAGE
0x1 ECU_ACCESS_DONT_CARE XCP_READ_ACCESS_WITH_ECU_ONLY
XCP_WRITE_ACCESS_WITH_ECU_ONLY
/end PAGE
/end SEGMENT
/end IF_DATA
/end MEMORY_SEGMENT

/begin MEMORY_SEGMENT ECU_Data


"Memory segment for parameters"
DATA FLASH EXTERN 0x810000 0x10000 -1 -1 -1 -1 -1
/end MEMORY_SEGMENT

SYSTEM_CONSTANT "System_Constant_1" "-3.45"


SYSTEM_CONSTANT "System_Constant_2" "5.67"
SYSTEM_CONSTANT "System_Constant_3" "Text in System Constant"

/end MOD_PAR
/*
===================================================================================
=========== */
/*
*/
/* Computation Methods used to convert the ECU internal values to the physical
values */
/*
*/
/* the types IDENTICAL, LINEAR and RAT_FUNC should be used as standard
*/
/*
*/
/*
===================================================================================
=========== */

/begin COMPU_METHOD CM.IDENTICAL


"conversion that delivers always phys = int"
IDENTICAL "%3.0" "hours"
/end COMPU_METHOD

/begin COMPU_METHOD CM.LINEAR.IDENT


"Linear function with parameter set for phys = f(int) = 1*int + 0"
LINEAR "%3.1" "m/s"
COEFFS_LINEAR 1 0
/end COMPU_METHOD

/begin COMPU_METHOD CM.LINEAR.MUL_2


"Linear function with parameter set for phys = f(int) = 2*int + 0"
LINEAR "%3.1" "m/s"
COEFFS_LINEAR 2 0
/end COMPU_METHOD

/begin COMPU_METHOD CM.RAT_FUNC.IDENT


"rational function with parameter set for int = f(phys) = phys"
RAT_FUNC "%3.1" "m/s"
COEFFS 0 1 0 0 0 1
/end COMPU_METHOD

/begin COMPU_METHOD CM.RAT_FUNC.DIV_10


"rational function with parameter set for impl = f(phys) = phys * 10"
RAT_FUNC "%3.1" "km/h"
COEFFS 0 10 0 0 0 1
/end COMPU_METHOD

/begin COMPU_METHOD CM.RAT_FUNC.DIV_81_9175


"rational function with parameter set for impl = f(phys) = phys * 81.9175"
RAT_FUNC "%8.4" "grad C"
COEFFS 0 81.9175 0 0 0 1
/end COMPU_METHOD

/*
===================================================================================
=========== */
/*
*/
/* type FORM should only be used if the computation is complex and not feasible by
RAT_FUNC */
/*
*/
/* Note:
*/
/* FORM is neccessary for VIRTUAL measuerments
*/
/*
*/
/*
===================================================================================
=========== */

/begin COMPU_METHOD CM.FORM.X_PLUS_4


""
FORM
"%6.1"
"rpm"
/begin FORMULA
"X1+4"
FORMULA_INV "X1-4"
/end FORMULA
/end COMPU_METHOD

/begin COMPU_METHOD CM.VIRTUAL.EXTERNAL_VALUE


""
FORM
"%6.1"
"rpm"
/begin FORMULA
"4*X1" /* FORMULA_INV not
needed here */
/end FORMULA
/end COMPU_METHOD

/*
===================================================================================
=========== */
/*
*/
/* type TAB_INTP and TAB_NOINTP should only be used if the computation is complex
and not */
/* feasible by RAT_FUNC
*/
/*
*/
/*
===================================================================================
=========== */

/begin COMPU_METHOD CM.TAB_INTP.DEFAULT_VALUE


""
TAB_INTP "%8.4" "U/ min "
COMPU_TAB_REF CM.TAB_INTP.DEFAULT_VALUE.REF
/end COMPU_METHOD
/begin COMPU_TAB CM.TAB_INTP.DEFAULT_VALUE.REF
""
TAB_INTP
12
-3 98
-1 99
0 100
2 102
4 104
5 105
6 106
7 107
8 108
9 109
10 110
13 111
DEFAULT_VALUE_NUMERIC 300.56 /* DEFAULT_VALUE_NUMERIC
should be used here as the normal output is numeric */
/end COMPU_TAB

/begin COMPU_METHOD CM.TAB_INTP.NO_DEFAULT_VALUE


""
TAB_INTP "%8.4" "U/ min "
COMPU_TAB_REF CM.TAB_INTP.NO_DEFAULT_VALUE.REF
/end COMPU_METHOD

/begin COMPU_TAB CM.TAB_INTP.NO_DEFAULT_VALUE.REF


""
/end MODULE
/end PROJECT

You might also like