/* Clear all SRAM */\r
init_RAM:\r
LOAD_ADDR_32(11,0x40000000)\r
-#if defined(CFG_MPC560X) && !defined(CFG_MPC5606B)\r
- li r12,384 # loop counter to get all of SRAM;\r
- /* 48k/4 bytes/32 GPRs = 384, only 48k ram for MPC5606s */\r
-#else\r
- li r12,640 # loop counter to get all of SRAM;\r
- /* 80k/4 bytes/32 GPRs = 640 */\r
+#if !defined(SRAM_SIZE)\r
+#error SRAM_SIZE not defined. Add it to board/<board>/build_config.mk\r
#endif\r
+\r
+ LOAD_ADDR_32(r4,SRAM_SIZE/(32*4))\r
mtctr r12\r
\r
init_ram_loop:\r
static const Wdg_ConfigType *configWdgPtr;\r
static const Wdg_SettingsType *modeWdgConfig;\r
\r
+\r
+\r
void StartWatchdog(void)\r
{\r
#if defined(CFG_MPC5567)\r
ECSM.SWTCR.R = 0x00D8;;\r
-#elif defined(CFG_MPC560X)\r
+#elif defined(CFG_MPC560X) || defined(CFG_MPC5668)\r
SWT.CR.R = 0x8000011B;\r
#else\r
MCM.SWTCR.R = 0x00D8;\r
{\r
#if defined(CFG_MPC5567)\r
ECSM.SWTCR.R = 0x0059;;\r
- #elif defined(CFG_MPC560X)\r
+ #elif defined(CFG_MPC560X) || defined(CFG_MPC5668)\r
SWT.SR.R = 0x0000c520; /* Write keys to clear soft lock bit */\r
SWT.SR.R = 0x0000d928;\r
SWT.CR.R = 0x8000010A;\r
\r
SECTIONS\r
{\r
+\r
+#if 0\r
/* __CALIB_RAM_START, __CALIB_RAM_END, __CALIB_ROM_START are needed by the a2l and the rte generator. \r
CALIBRATION_ENABLED, CALIBRATION_INITIALIZED_RAM, CALIBRATION_FLS_START are generated by rte \r
*/\r
__FLS_PROG_START__ = 0; /* Must be aligned to a sector start. */\r
#endif\r
\r
+#if !defined(CFG_BOOT)\r
.rcw __FLS_PROG_START__ : { *(.rcw) } > flash\r
-\r
-\r
+#endif\r
+#endif\r
.text :\r
{\r
+ crt0.o(.text);\r
*(.text .text.* .init .fini* .eini* .gnu.linkonce* .gnu.warning);\r
PROVIDE( btask_sup_matrix = .);\r
SORT(*)(.test_btask);\r
} > flash\r
\r
/* Read-only data section. */\r
- .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } > flash\r
+ .rodata : { \r
+ *(.rodata .rodata.* .gnu.linkonce.r.*);\r
+ *(.got.plt) *(.got)\r
+ } > flash\r
\r
/* initialized read-only small data section. */\r
.sdata2 : {\r
_SDA2_BASE_ = .; /* r2 */\r
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*);\r
*(PPC.EMB.sdata2 .PPC.EMB.sbss2)\r
+ . = ALIGN(0x10); \r
} > flash\r
\r
-\r
/* uninitialized read-only small data section. */\r
.sbss2 : {\r
*(.sbss2 .sbss2.* .gnu.linkonce.sb2.*);\r
__TEXT_END = .;\r
- . = . + ALIGN(8);\r
} > flash\r
\r
\r
.data : {\r
- . = . + ALIGN(4);\r
__DATA_RAM = .; \r
*(.data .data.* .gnu.linkonce.d.* .gnu.linkonce.r.* .eh_frame)\r
+ . = ALIGN(0x10);\r
} > ram AT> flash\r
\r
.sdata : {\r
- . = . + ALIGN(4);\r
__SDATA_START__ = .;\r
_SDA_BASE_ = .; /* r13 */\r
*(.sdata .sdata.* .gnu.linkonce.s.*)\r
*(PPC.EMB.sdata2 .PPC.EMB.sbss2)\r
- . = . + ALIGN(8);\r
__DATA_END = .;\r
} > ram AT> flash\r
\r
_end = .;\r
} > ram\r
\r
- .got2 ALIGN(0x10): \r
- {\r
- . = . + ALIGN(16);\r
- *(.got2); \r
- . = . + ALIGN(8); \r
- } > ram\r
- .fixup : \r
- { \r
- . = . + ALIGN(16);\r
- *(.fixup);\r
- . = . + ALIGN(8); \r
- } > ram\r
.t32_outport ALIGN(0x10): \r
{ \r
*(.t32_outport); \r
} > ram\r
- \r
- .got : AT(ALIGN(LOADADDR(.sdata)+SIZEOF(.sdata),4)) \r
- { \r
- *(.got.plt) *(.got) \r
- } > ram\r
- \r
- .bss : AT(ADDR(.bss)) \r
- { \r
+ \r
+ .bss (NOLOAD) : \r
+ {\r
+ *(.got2);\r
+ *(.fixup);\r
*(.bss .bss.* COMMON .gnu.linkonce.b.*);\r
__BSS_END = .; \r
} > ram\r
+ \r
.init_stack ALIGN(16) (NOLOAD) : \r
{ \r
__SP_END = .;\r
KEEP (*(SORT(.ctors.*)))\r
}\r
\r
-.uninit ALIGN(0x10): { *(.winidea_port .ramlog .dem_eventmemory_pri) ; } > ram\r
+.uninit ALIGN(0x10) (NOLOAD) : { *(.winidea_port .ramlog .dem_eventmemory_pri) ; } > ram\r
\r
/* Always place last in RAM */\r
.heap ALIGN(0x4): {\r
/* __SBSS_END__ = ADDR(.sbss) + SIZEOF(.sbss); */\r
__SDATA2_START__ = ADDR(.sdata2);\r
__SBSS2_END__ = ADDR(.sbss2) + SIZEOF(.sbss2);\r
-__GOT_START__ = ADDR(.got);\r
-__GOT_END__ = ADDR(.got) + SIZEOF(.got);\r
-__GOT2_START__ = ADDR(.got2);\r
-__GOT2_END__ = ADDR(.got2) + SIZEOF(.got2);\r
-__FIXUP_START__ = ADDR(.fixup);\r
-__FIXUP_END__ = ADDR(.fixup) + SIZEOF(.fixup);\r
+//__GOT_START__ = ADDR(.got);\r
+//__GOT_END__ = ADDR(.got) + SIZEOF(.got);\r
+//__GOT2_START__ = ADDR(.got2);\r
+//__GOT2_END__ = ADDR(.got2) + SIZEOF(.got2);\r
+//__FIXUP_START__ = ADDR(.fixup);\r
+//__FIXUP_END__ = ADDR(.fixup) + SIZEOF(.fixup);\r
\r
__EXCEPT_START__ = 0x0;\r
__EXCEPT_END__ = 0x0;\r
obj-$(USE_NVM) += Crc_32.o\r
obj-$(USE_NVM) += Crc_16.o\r
\r
+# SchM\r
+inc-y += $(ROOTDIR)/system/SchM\r
+vpath-$(USE_SCHM) += $(ROOTDIR)/system/SchM\r
+obj-$(USE_SCHM) += SchM.o\r
+\r
# J1939Tp\r
obj-$(USE_J1939TP) += J1939Tp.o\r
obj-$(USE_J1939TP) += J1939Tp_LCfg.o\r
obj-$(USE_DCM) += Dcm_Dsd.o\r
obj-$(USE_DCM) += Dcm_Dsl.o\r
obj-$(USE_DCM) += Dcm_LCfg.o\r
+obj-$(USE_DCM) += Dcm_Callout_Stubs.o\r
inc-$(USE_DCM) += $(ROOTDIR)/diagnostic/Dcm\r
vpath-$(USE_DCM) += $(ROOTDIR)/diagnostic/Dcm\r
\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+/* Ecum Callout Stubs - generic version */\r
+\r
+#include "Dem.h"\r
+\r
+Dcm_ReturnWriteMemoryType Dcm_WriteMemory(Dcm_OpStatusType OpStatus,\r
+ uint8 MemoryIdentifier,\r
+ uint32 MemoryAddress,\r
+ uint32 MemorySize,\r
+ uint8* MemoryData)\r
+{\r
+\r
+ return DCM_WRITE_FAILED;\r
+}\r
+\r
+/*@req Dcm495*/\r
+Dcm_ReturnReadMemoryType Dcm_ReadMemory(Dcm_OpStatusType OpStatus,\r
+ uint8 MemoryIdentifier,\r
+ uint32 MemoryAddress,\r
+ uint32 MemorySize,\r
+ uint8* MemoryData)\r
+{\r
+\r
+\r
+ return DCM_READ_FAILED;\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/3.1.5 autosar_3-1-5.xsd">\r
+ <TOP-LEVEL-PACKAGES>\r
+ <AR-PACKAGE>\r
+ <SHORT-NAME>board_mpc5516it</SHORT-NAME>\r
+ <ELEMENTS>\r
+ <ECU-CONFIGURATION UUID="648c53b5-9641-4cd5-90c9-805eb89b6bc4">\r
+ <SHORT-NAME>board_mpc5516it</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <DOC-REVISIONS>\r
+ <DOC-REVISION />\r
+ </DOC-REVISIONS>\r
+ <SDGS>\r
+ <SDG GID="Arccore::EcuOptions">\r
+ <SD GID="MCU">MPC551x</SD>\r
+ <SD GID="GENDIR">${RESOURCE_LOC}</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <ECU-SW-COMPOSITION-REF DEST="ECU-SW-COMPOSITION">/board_mpc5516it/SwComposition_board_mpc5516it</ECU-SW-COMPOSITION-REF>\r
+ <MODULE-REFS>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/board_mpc5516it/Dio</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/board_mpc5516it/Mcu</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/board_mpc5516it/Port</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/board_mpc5516it/EcuM</MODULE-REF>\r
+ </MODULE-REFS>\r
+ </ECU-CONFIGURATION>\r
+ <ECU-SW-COMPOSITION UUID="56574a22-5b8c-40d2-8986-8b5a121f8e21">\r
+ <SHORT-NAME>SwComposition_board_mpc5516it</SHORT-NAME>\r
+ </ECU-SW-COMPOSITION>\r
+ <MODULE-CONFIGURATION UUID="de718a54-1bc1-4dc0-88ef-d90ecec33b7c">\r
+ <SHORT-NAME>Dio</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.0</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Dio</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="5d9a2bdf-88b2-4afa-9995-2d4c42ac303d">\r
+ <SHORT-NAME>DioGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Dio/DioGeneral/DioDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Dio/DioGeneral/DioVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="70389048-7f93-448e-8796-1cc10159fde0">\r
+ <SHORT-NAME>LED_PORT</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioPortId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/Dio/DioPort/ArcCoreDioPhysicalPort</DEFINITION-REF>\r
+ <VALUE>DIO_PORT_D</VALUE>\r
+ </STRING-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="bb5c5466-9542-46a1-9035-32b03ca317eb">\r
+ <SHORT-NAME>LEDS_LED4</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>52</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1cd257d5-4890-414b-948a-f7177260349d">\r
+ <SHORT-NAME>LEDS_LED5</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>53</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="fc2e1375-9142-4dda-96ba-12b7ed0c23ae">\r
+ <SHORT-NAME>LED_GRP_PTR</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannelGroup</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannelGroup/DioPortMask</DEFINITION-REF>\r
+ <VALUE>48</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannelGroup/DioPortOffset</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="8ab8ead7-d7be-4c84-be71-6980a8f426f6">\r
+ <SHORT-NAME>SPI_HOLD</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioPortId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/Dio/DioPort/ArcCoreDioPhysicalPort</DEFINITION-REF>\r
+ <VALUE>DIO_PORT_G</VALUE>\r
+ </STRING-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="e7c20696-0c6d-43d7-ae7e-b2bcd26a483f">\r
+ <SHORT-NAME>SPI_A_HOLD_M95256</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>97</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7fc4cf00-edcc-4d2d-90d5-c739cdf0f2b5">\r
+ <SHORT-NAME>SPI_B_HOLD_M95256</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>102</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="4603d58c-0e72-4ea9-b54a-372a4875ba53">\r
+ <SHORT-NAME>SPI_A_HOLD_S25FL016</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>101</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ee51423c-93df-4741-80cb-a5a21eb72290">\r
+ <SHORT-NAME>MISC_PORT</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioPortId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/Dio/DioPort/ArcCoreDioPhysicalPort</DEFINITION-REF>\r
+ <VALUE>DIO_PORT_E</VALUE>\r
+ </STRING-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="be334253-413e-4918-ac37-01546e979a20">\r
+ <SHORT-NAME>S1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">Push switch S1</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>95</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="6884d6f0-7a44-438f-8901-67daca95e5bb">\r
+ <SHORT-NAME>PLAY</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioPortId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/Dio/DioPort/ArcCoreDioPhysicalPort</DEFINITION-REF>\r
+ <VALUE>DIO_PORT_F</VALUE>\r
+ </STRING-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="2448913f-2be5-411d-92c5-44a5da67fb2d">\r
+ <SHORT-NAME>OUTIN_0</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">PF[0] Used for IoHwAb to play with</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>80</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="bb62fd40-7cc5-4a9c-882f-4187ef449007">\r
+ <SHORT-NAME>OUTIN_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">PF[1] Used for IoHwAb to play with</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>81</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="dbfb7be7-37de-4087-b063-397be232ceea">\r
+ <SHORT-NAME>Mcu</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.0</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Mcu</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="0ab2bb62-5561-4f6c-a204-9e5452c8cc90">\r
+ <SHORT-NAME>McuGeneralConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuGeneralConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuPerformResetApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f21be304-420e-421a-a055-df1afa68324a">\r
+ <SHORT-NAME>McuModuleConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSrcFailureNotification</DEFINITION-REF>\r
+ <VALUE>DISABLED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuNumberOfMcuModes</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuRamSectors</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuResetSetting</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="8dff9544-cfaa-4d5d-8ed1-bb18e658fe8e">\r
+ <SHORT-NAME>McuClockSettingConfig</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuDefaultClockReference</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/board_mpc5516it/Mcu/McuModuleConfiguration/McuClockSettingConfig/EXT_REF_80MHZ</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="f1ac9efa-fe7a-4a4b-965b-719faa35a2a3">\r
+ <SHORT-NAME>EXT_REF_80MHZ</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointFrequency</DEFINITION-REF>\r
+ <VALUE>8000000.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEprediv</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEmfd</DEFINITION-REF>\r
+ <VALUE>104</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllErfd</DEFINITION-REF>\r
+ <VALUE>5</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="5e7f1629-02bc-4f44-8dff-f23458377126">\r
+ <SHORT-NAME>EXT_REF_66MHZ</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointFrequency</DEFINITION-REF>\r
+ <VALUE>1.6E7</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEprediv</DEFINITION-REF>\r
+ <VALUE>3</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEmfd</DEFINITION-REF>\r
+ <VALUE>83</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllErfd</DEFINITION-REF>\r
+ <VALUE>5</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="49b20ef4-5b28-4241-aaf7-be4837412fc5">\r
+ <SHORT-NAME>XOSC_CAN</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointFrequency</DEFINITION-REF>\r
+ <VALUE>8000000.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEprediv</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEmfd</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllErfd</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="edd643af-7788-4a0c-bf48-bf4b686db735">\r
+ <SHORT-NAME>McuModeSettingConf</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuModeSettingConf</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuModeSettingConf/McuMode</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="3e5897b8-4af8-4a71-9de6-f999f6a67e61">\r
+ <SHORT-NAME>Port</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.0</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="5cf89b5f-7998-4820-a1ab-f7bcf4c4f4ef">\r
+ <SHORT-NAME>PortConfigSet</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="1740d414-498c-4693-8228-9a7d2fba99f9">\r
+ <SHORT-NAME>Misc</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="fa67df68-90a6-4771-a01d-fd93c65ac391">\r
+ <SHORT-NAME>BOOTCFG</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>50</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_OTHER</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="a0c2497b-fdfc-44d0-a538-43065b7fcabb">\r
+ <SHORT-NAME>PF[15]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">S1 Push Switch</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>95</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="01eab2fd-ad42-411c-8b47-e1794c7c78ba">\r
+ <SHORT-NAME>PF[0]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>80</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="2f15131f-aea1-405b-8abb-98a218ed9855">\r
+ <SHORT-NAME>SPI_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">E2 and Flash. CS1 for E2 and CS2 for flash</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="78b185c8-bdbf-4b40-a81e-c92808218492">\r
+ <SHORT-NAME>SIN_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>69</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="41f01582-bdb9-480d-b3d2-04195c6043f3">\r
+ <SHORT-NAME>SOUT_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>68</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1cbb3209-a8ed-4964-a865-3b8f74cb80b4">\r
+ <SHORT-NAME>SCK_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>67</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f9f8be22-04c1-4f11-814f-04691e066841">\r
+ <SHORT-NAME>PCS_A[1]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">CS for M95256</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>65</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="919c81e4-3daf-4548-b36c-04f1effbb0e7">\r
+ <SHORT-NAME>PCS_A[2]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">CS for S25FL016</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>64</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7e36a153-e61b-4f4b-bf48-775f94d5bb51">\r
+ <SHORT-NAME>PG[1]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">HOLD pin for E2 (pull HIGH)</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>97</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_HIGH</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f50ff4c2-3c7e-487e-8a79-0ff0a495ed91">\r
+ <SHORT-NAME>PG[5]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">HOLD for flash( Pull HIGH)</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>101</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_HIGH</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="4c38b10d-8cb1-412b-895f-748083061775">\r
+ <SHORT-NAME>SPI_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="53c39411-5783-4024-b201-3b0787de51ea">\r
+ <SHORT-NAME>SIN_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>63</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="5fe0516e-1bcd-486c-92c2-4718418ad0c1">\r
+ <SHORT-NAME>SOUT_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>62</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="153fbcb1-c546-42b2-bb43-f3dac65cdefc">\r
+ <SHORT-NAME>SCK_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>61</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ef7abd3e-6e61-44c7-9dca-bccd27f7c7d3">\r
+ <SHORT-NAME>PCS_B[0]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>60</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_SPI</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="d827d96d-1eac-495d-9d91-46ff1293dc4c">\r
+ <SHORT-NAME>PG[6]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">HOLD</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>102</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_HIGH</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="af797d85-17ae-4538-8c96-4a2d18370fa4">\r
+ <SHORT-NAME>LIN_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="5b6dcf9f-f36b-49e6-b9bc-ce43b235206e">\r
+ <SHORT-NAME>TXD_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>56</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_OTHER_1</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1144ecd1-4586-4d10-9a98-ac9d4b820c2c">\r
+ <SHORT-NAME>RXD_B</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>57</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MAX</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_OTHER_1</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="17593bea-0e41-47dc-9100-cc417f3d8033">\r
+ <SHORT-NAME>LED</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">Should define user LEDs LD4 and LD5</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="d1303274-35c0-47d9-94ae-3d93d7cb2403">\r
+ <SHORT-NAME>PD[4]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>52</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="61034d2f-245a-4827-ae71-27f80ff1c6d4">\r
+ <SHORT-NAME>PD[5]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>53</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="3ac3513f-08ba-4dbd-988f-d5cad6b86646">\r
+ <SHORT-NAME>CAN_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions">\r
+ <SD GID="@ARCCORE_COMMENT">The board just contains 1 CAN connector. Connected to CAN_A</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="e9ea5a02-d2d9-4556-9a44-b982c3ac60c0">\r
+ <SHORT-NAME>CNTX_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>48</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="54c33959-51f0-4f00-9b03-a4f4abe273b3">\r
+ <SHORT-NAME>CNRX_A</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>49</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="d0f52e19-2f0c-4427-802c-0af263505366">\r
+ <SHORT-NAME>SerialPort</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="6d961ced-d519-4de1-89fd-f347a2efed00">\r
+ <SHORT-NAME>RXD_D</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>93</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_OTHER_2</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="498e6f32-da69-4918-8c77-dfda63e7a3bd">\r
+ <SHORT-NAME>TXD_D</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>92</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_OTHER_2</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="dd3a7ccd-9c9b-4d50-b7af-58afb7b9e137">\r
+ <SHORT-NAME>PortGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortSetPinDirectionApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortSetPinModeApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="ed211179-bf2b-4083-81b1-1053739458b0">\r
+ <SHORT-NAME>EcuM</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.2</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/EcuM</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="b1564e99-d948-4202-85d7-1d7b516d0047">\r
+ <SHORT-NAME>EcuMGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuM/EcuMGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMIncludeNvramMgr</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMMainFunctionPeriod</DEFINITION-REF>\r
+ <VALUE>0.2</VALUE>\r
+ </FLOAT-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="8991f1dd-8416-4401-8f7b-4859c3e2a5b0">\r
+ <SHORT-NAME>EcuMConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuM/EcuMConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMNvramReadallTimeout</DEFINITION-REF>\r
+ <VALUE>10.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMRunMinimumDuration</DEFINITION-REF>\r
+ <VALUE>10.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMNvramWriteallTimeout</DEFINITION-REF>\r
+ <VALUE>10.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="8ade5dca-9412-4f57-a6bb-4d9a4c21951b">\r
+ <SHORT-NAME>User_1</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMUserConfig</DEFINITION-REF>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ </ELEMENTS>\r
+ </AR-PACKAGE>\r
+ </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>\r
+\r
# Network management\r
MOD_AVAIL+=COMM NM CANNM CANSM EA LINSM\r
# Additional\r
-MOD_AVAIL+= RAMLOG \r
+MOD_AVAIL+= RAMLOG SCHM\r
# CRC\r
MOD_AVAIL+=CRC32 CRC16\r
# Required modules\r
# Default cross compiler\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
\r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
* 5517S,5516G,5516E, 64K RAM\r
* 5517G,E , 80K RAM\r
*/\r
-ram(RW) : ORIGIN = 0x40000000, LENGTH = 0x00c000\r
+ram(RW) : ORIGIN = 0x40000000, LENGTH = SRAM_SIZE\r
\r
# Default cross compiler\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
+\r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
* 5517S,5516G,5516E, 64K RAM\r
* 5517G,E , 80K RAM\r
*/\r
-ram(RW) : ORIGIN = 0x40000000, LENGTH = 0x100000\r
+ram(RW) : ORIGIN = 0x40000000, LENGTH = SRAM_SIZE\r
# Default cross compiler\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
\r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
* 5517S,5516G,5516E, 64K RAM\r
* 5517G,E , 80K RAM\r
*/\r
-ram(RW) : ORIGIN = 0x40000000, LENGTH = 0x100000\r
+ram(RW) : ORIGIN = 0x40000000, LENGTH = SRAM_SIZE\r
--- /dev/null
+\r
+BOOT_IMAGE_ADDR=0x1c000\r
+BOOT_BLOB_LOAD_ADDR=0x1c100\r
+BOOT_BLOB_START_ADDR=$(BOOT_BLOB_LOAD_ADDR)\r
# CFG (y/n) macros\r
CFG=PPC BOOKE E200Z6 MPC55XX MPC5567 BRD_MPC5567QRTECH SPE\r
\r
+#CFG+=BOOT\r
+\r
# What buildable modules does this board have, \r
# default or private\r
\r
# Default cross compiler\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
\r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
+\r
\r
VPATH += $(ROOTDIR)/examples\r
VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
-\r
+ \r
endif\r
\r
\r
\r
\r
\r
+\r
+\r
--- /dev/null
+\r
+# Version of build system\r
+REQUIRED_BUILD_SYSTEM_VERSION=1.0.0\r
+\r
+# Get configuration makefiles\r
+-include ../config/*.mk\r
+-include ../config/$(BOARDDIR)/*.mk\r
+\r
+MOD_USE+= DET ECUM KERNEL RAMLOG
\ No newline at end of file
--- /dev/null
+/*\r
+* Configuration of module: Rte (Calibration_Settings.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Calibration_Settings.h */
+
+#ifndef CALIBRATION_SETTINGS_H
+#define CALIBRATION_SETTINGS_H
+
+#undef CALIBRATION_INITIALIZED_RAM
+
+#undef CALIBRATION_ENABLED
+
+#undef CALIBRATION_FLS_START
+
+
+
+#endif
--- /dev/null
+/*\r
+* Configuration of module: CanIf (CanIf_Cfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.6\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+\r
+ \r
+#include "CanIf.h"\r
+#if defined(USE_CANTP)\r
+#include "CanTp.h"\r
+#include "CanTp_Cbk.h"\r
+#endif\r
+#if defined(USE_J1939TP)\r
+#include "J1939Tp.h"\r
+#include "J1939Tp_Cbk.h"\r
+#endif\r
+#if defined(USE_PDUR)\r
+#include "PduR.h"\r
+#endif\r
+#if defined(USE_CANNM)\r
+#include "CanNm_Cbk.h"\r
+#endif\r
+#include <stdlib.h>\r
+\r
+\r
+// Imported structs from Can_Lcfg.c\r
+extern const Can_ControllerConfigType CanControllerConfigData[];\r
+extern const Can_ConfigSetType CanConfigSetData;\r
+\r
+\r
+\r
+\r
+// Contains the mapping from CanIf-specific Channels to Can Controllers\r
+const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = {\r
+ FLEXCAN_A, // Channel_1\r
+};\r
+\r
+const uint8 CanIf_Arc_ChannelDefaultConfIndex[CANIF_CHANNEL_CNT] = {\r
+ CANIF_Channel_1_CONFIG_0,\r
+};\r
+\r
+// Container that gets slamed into CanIf_InitController()\r
+// Inits ALL controllers\r
+// Multiplicity 1..*\r
+const CanIf_ControllerConfigType CanIfControllerConfig[] = {\r
+ // This is the ConfigurationIndex in CanIf_InitController()\r
+ \r
+ \r
+ { \r
+ .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
+ .CanIfControllerIdRef = CANIF_Channel_1,\r
+ .CanIfDriverNameRef = "FLEXCAN", // Not used\r
+ .CanIfInitControllerRef = &CanControllerConfigData[0],\r
+ },\r
+ \r
+};\r
+\r
+// Function callbacks for higher layers\r
+const CanIf_DispatchConfigType CanIfDispatchConfig =\r
+{\r
+ .CanIfBusOffNotification = NULL,\r
+ .CanIfWakeUpNotification = NULL, // Not used\r
+ .CanIfWakeupValidNotification = NULL, // Not used\r
+ .CanIfErrorNotificaton = NULL,\r
+};\r
+\r
+\r
+// Data for init configuration CanIfInitConfiguration\r
+\r
+ \r
+\r
+const CanIf_HthConfigType CanIfHthConfigData_Hoh_1[] =\r
+{\r
+ \r
+ { \r
+ .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+ .CanIfCanControllerIdRef = CANIF_Channel_1,\r
+ .CanIfHthIdSymRef = HWObj_2,\r
+ .CanIf_Arc_EOL = 1,\r
+ },\r
+};\r
+\r
+const CanIf_HrhConfigType CanIfHrhConfigData_Hoh_1[] =\r
+{\r
+ \r
+ {\r
+ .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+ .CanIfSoftwareFilterHrh = TRUE,\r
+ .CanIfCanControllerHrhIdRef = CANIF_Channel_1,\r
+ .CanIfHrhIdSymRef = HWObj_1,\r
+ .CanIf_Arc_EOL = 1,\r
+ },\r
+};\r
+\r
+\r
+const CanIf_InitHohConfigType CanIfHohConfigData[] = { \r
+ \r
+ {\r
+ .CanConfigSet = &CanConfigSetData,\r
+ .CanIfHrhConfig = CanIfHrhConfigData_Hoh_1,\r
+ .CanIfHthConfig = CanIfHthConfigData_Hoh_1,\r
+ .CanIf_Arc_EOL = 1,\r
+ },\r
+};\r
+ \r
+const CanIf_TxPduConfigType CanIfTxPduConfigData[] = { \r
+ {\r
+ .CanIfTxPduId = PDUR_REVERSE_PDU_ID_TX_PDU,\r
+ .CanIfCanTxPduIdCanId = 2,\r
+ .CanIfCanTxPduIdDlc = 8,\r
+ .CanIfCanTxPduType = CANIF_PDU_TYPE_STATIC,\r
+#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
+ .CanIfReadTxPduNotifyStatus = false, \r
+#endif\r
+ .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_11,\r
+ .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation,\r
+ .CanIfCanTxPduHthRef = &CanIfHthConfigData_Hoh_1[0],\r
+ .PduIdRef = NULL,\r
+ }, \r
+ {\r
+ .CanIfTxPduId = PDUR_REVERSE_PDU_ID_FreqInd,\r
+ .CanIfCanTxPduIdCanId = 258,\r
+ .CanIfCanTxPduIdDlc = 8,\r
+ .CanIfCanTxPduType = CANIF_PDU_TYPE_STATIC,\r
+#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
+ .CanIfReadTxPduNotifyStatus = false, \r
+#endif\r
+ .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_11,\r
+ .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation,\r
+ .CanIfCanTxPduHthRef = &CanIfHthConfigData_Hoh_1[0],\r
+ .PduIdRef = NULL,\r
+ }, \r
+};\r
+\r
+const CanIf_RxPduConfigType CanIfRxPduConfigData[] = { \r
+ {\r
+ .CanIfCanRxPduId = PDUR_PDU_ID_RX_PDU,\r
+ .CanIfCanRxPduCanId = 1,\r
+ .CanIfCanRxPduDlc = 8,\r
+#if ( CANIF_CANPDUID_READDATA_API == STD_ON ) \r
+ .CanIfReadRxPduData = false,\r
+#endif \r
+#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
+ .CanIfReadRxPduNotifyStatus = false, \r
+#endif\r
+ .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR,\r
+ .CanIfCanRxPduHrhRef = &CanIfHrhConfigData_Hoh_1[0],\r
+ .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_11,\r
+ .CanIfUserRxIndication = NULL,\r
+ .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK,\r
+ .CanIfCanRxPduCanIdMask = 0xFFF,\r
+ .PduIdRef = NULL,\r
+ }, \r
+ {\r
+ .CanIfCanRxPduId = PDUR_PDU_ID_FreqReq,\r
+ .CanIfCanRxPduCanId = 256,\r
+ .CanIfCanRxPduDlc = 8,\r
+#if ( CANIF_CANPDUID_READDATA_API == STD_ON ) \r
+ .CanIfReadRxPduData = false,\r
+#endif \r
+#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
+ .CanIfReadRxPduNotifyStatus = false, \r
+#endif\r
+ .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR,\r
+ .CanIfCanRxPduHrhRef = &CanIfHrhConfigData_Hoh_1[0],\r
+ .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_11,\r
+ .CanIfUserRxIndication = NULL,\r
+ .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK,\r
+ .CanIfCanRxPduCanIdMask = 0xFFF,\r
+ .PduIdRef = NULL,\r
+ }, \r
+};\r
+\r
+// This container contains the init parameters of the CAN\r
+// Multiplicity 1..*\r
+const CanIf_InitConfigType CanIfInitConfig =\r
+{\r
+ .CanIfConfigSet = 0, // Not used \r
+ .CanIfNumberOfCanRxPduIds = 2,\r
+ .CanIfNumberOfCanTXPduIds = 2,\r
+ .CanIfNumberOfDynamicCanTXPduIds = 0, // Not used\r
+\r
+ // Containers\r
+ .CanIfHohConfigPtr = CanIfHohConfigData,\r
+ .CanIfRxPduConfigPtr = CanIfRxPduConfigData,\r
+ .CanIfTxPduConfigPtr = CanIfTxPduConfigData,\r
+};\r
+\r
+ // This container includes all necessary configuration sub-containers\r
+// according the CAN Interface configuration structure.\r
+CanIf_ConfigType CanIf_Config =\r
+{\r
+ .ControllerConfig = CanIfControllerConfig,\r
+ .DispatchConfig = &CanIfDispatchConfig,\r
+ .InitConfig = &CanIfInitConfig,\r
+ .TransceiverConfig = NULL, // Not used\r
+ .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap, \r
+ .Arc_ChannelDefaultConfIndex = CanIf_Arc_ChannelDefaultConfIndex,\r
+};\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: CanIf (CanIf_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.6\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((CANIF_SW_MAJOR_VERSION == 1) && (CANIF_SW_MINOR_VERSION == 3)) )
+#error CanIf: Configuration file expected BSW module version to be 1.3.*
+#endif
+
+\r
+#ifndef CANIF_CFG_H_\r
+#define CANIF_CFG_H_\r
+\r
+#include "Can.h"\r
+\r
+\r
+#define CANIF_VERSION_INFO_API STD_ON\r
+#define CANIF_DEV_ERROR_DETECT STD_OFF\r
+#define CANIF_DLC_CHECK STD_ON\r
+#define CANIF_ARC_RUNTIME_PDU_CONFIGURATION STD_OFF\r
+#define CANIF_MULITPLE_DRIVER_SUPPORT STD_OFF // Not supported\r
+#define CANIF_READRXPDU_DATA_API STD_OFF // Not supported\r
+#define CANIF_READRXPDU_NOTIFY_STATUS_API STD_OFF // Not supported\r
+#define CANIF_READTXPDU_NOTIFY_STATUS_API STD_OFF // Not supported\r
+#define CANIF_SETDYNAMICTXID_API STD_OFF // Not supported\r
+#define CANIF_WAKEUP_EVENT_API STD_OFF // Not supported\r
+#define CANIF_TRANSCEIVER_API STD_OFF // Not supported\r
+#define CANIF_TRANSMIT_CANCELLATION STD_OFF // Not supported\r
+\r
+\r
+#define CANIF_PDU_ID_RX_PDU 0\r
+#define CANIF_PDU_ID_FreqReq 1\r
+\r
+#define CANIF_PDU_ID_TX_PDU 0\r
+#define CANIF_PDU_ID_FreqInd 1\r
+\r
+// Identifiers for the elements in CanIfControllerConfig[]\r
+// This is the ConfigurationIndex in CanIf_InitController()\r
+typedef enum {\r
+ CANIF_Channel_1_CONFIG_0,\r
+ CANIF_CHANNEL_CONFIGURATION_CNT\r
+} CanIf_Arc_ConfigurationIndexType;\r
+\r
+typedef enum {\r
+ CANIF_Channel_1,\r
+ CANIF_CHANNEL_CNT\r
+} CanIf_Arc_ChannelIdType;\r
+\r
+#define CANIF_CONTROLLER_ID_Controller_1 CANIF_Channel_1\r
+\r
+\r
+#include "CanIf_ConfigTypes.h"\r
+\r
+\r
+extern CanIf_ConfigType CanIf_Config;\r
+\r
+#endif\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: CanIf (CanIf_SpecialPdus.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.6\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((CANIF_SW_MAJOR_VERSION == 1) && (CANIF_SW_MINOR_VERSION == 3)) )
+#error CanIf: Configuration file expected BSW module version to be 1.3.*
+#endif
+
+\r
+#ifndef CANIF_SPECIALPDUS_H_\r
+#define CANIF_SPECIALPDUS_H_\r
+\r
+\r
+\r
+#endif\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Can (Can_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((CAN_SW_MAJOR_VERSION == 1) && (CAN_SW_MINOR_VERSION == 0)) )
+#error Can: Configuration file expected BSW module version to be 1.0.*
+#endif
+
+ \r
+\r
+#ifndef CAN_CFG_H_\r
+#define CAN_CFG_H_\r
+\r
+// Number of controller configs\r
+#define CAN_ARC_CTRL_CONFIG_CNT 1\r
+\r
+#define CAN_DEV_ERROR_DETECT STD_OFF\r
+#define CAN_VERSION_INFO_API STD_OFF\r
+#define CAN_MULTIPLEXED_TRANSMISSION STD_OFF // Not supported\r
+#define CAN_WAKEUP_SUPPORT STD_OFF // Not supported\r
+#define CAN_HW_TRANSMIT_CANCELLATION STD_OFF // Not supported\r
+\r
+typedef enum {\r
+ FLEXCAN_A = 0,\r
+ CAN_CTRL_A = 0,\r
+ FLEXCAN_B = 1,\r
+ CAN_CTRL_B = 1,\r
+ FLEXCAN_C = 2,\r
+ CAN_CTRL_C = 2,\r
+ FLEXCAN_D = 3,\r
+ CAN_CTRL_D = 3,\r
+ FLEXCAN_E = 4,\r
+ CAN_CTRL_E = 4,\r
+ CAN_CONTROLLER_CNT = 5\r
+}CanControllerIdType;\r
+\r
+typedef enum {\r
+ CAN_OBJECT_TYPE_RECEIVE,\r
+ CAN_OBJECT_TYPE_TRANSMIT\r
+} Can_ObjectTypeType;\r
+\r
+\r
+typedef enum {\r
+ HWObj_2,\r
+ NUM_OF_HTHS\r
+} Can_Arc_HTHType;\r
+\r
+\r
+typedef enum {\r
+ HWObj_1,\r
+ NUM_OF_HRHS\r
+} Can_Arc_HRHType;\r
+\r
+\r
+typedef struct {\r
+ // Specifies the InstanceId of this module instance. If only one instance is\r
+ // present it shall have the Id 0\r
+ uint8 CanIndex;\r
+} Can_GeneralType;\r
+\r
+// Start mc9s12 unique\r
+typedef enum {\r
+ CAN_ARC_IDAM_2_32BIT,\r
+ CAN_ARC_IDAM_4_16BIT,\r
+ CAN_ARC_IDAM_8_8BIT,\r
+ CAN_ARC_IDAM_FILTER_CLOSED,\r
+} Can_Arc_IDAMType;\r
+\r
+typedef uint32 Can_FilterMaskType;\r
+\r
+typedef enum {\r
+ CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+ CAN_ARC_PROCESS_TYPE_POLLING\r
+} Can_Arc_ProcessType;\r
+\r
+struct Can_ControllerConfig;\r
+struct Can_Callback;\r
+\r
+typedef struct {\r
+ const struct Can_ControllerConfig *CanController;\r
+ \r
+ // Callbacks( Extension )\r
+ const struct Can_Callback *CanCallbacks; \r
+ const uint8 * const ArcHthToUnit;\r
+ const uint8 * const ArcHthToHoh;\r
+ const uint8 * const ArcCtrlToUnit;\r
+} Can_ConfigSetType;\r
+\r
+\r
+typedef struct {\r
+ // This is the multiple configuration set container for CAN Driver\r
+ // Multiplicity 1..*\r
+ const Can_ConfigSetType *CanConfigSet;\r
+ // This container contains the parameters related each CAN\r
+ // Driver Unit.\r
+ // Multiplicity 1..*\r
+ const Can_GeneralType *CanGeneral;\r
+ \r
+} Can_ConfigType;\r
+\r
+extern const Can_ConfigType CanConfigData;\r
+extern const Can_ConfigSetType Can_ConfigSet;\r
+\r
+#endif /*CAN_CFG_H_*/\r
--- /dev/null
+/*\r
+* Configuration of module: Can (Can_PBcfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+ \r
+\r
+#include <stdlib.h>\r
+#include "Can.h"\r
+#include "CanIf_Cbk.h"\r
+\r
+Can_FilterMaskType Can_FilterMaskConfigData_Controller_1_Mask_1 = 0x0;\r
+Can_FilterMaskType Can_FilterMaskConfigData_FULLMask = 0x1FFFFFFF;\r
+\r
+\r
+\r
+const Can_HardwareObjectType CanHardwareObjectConfig_Controller_1[] = {\r
+ {\r
+ .CanObjectId = HWObj_1,\r
+ .CanIdType = CAN_ID_TYPE_STANDARD,\r
+ .CanIdValue = 0x0,\r
+ .CanObjectType = CAN_OBJECT_TYPE_RECEIVE,\r
+ .CanFilterMaskRef = &Can_FilterMaskConfigData_Controller_1_Mask_1,\r
+ \r
+ .Can_Arc_Flags = (0),\r
+ \r
+ \r
+ /* Mailbox(es): 8 */\r
+ .ArcMailboxMask = 0x100ULL ,\r
+ },\r
+ {\r
+ .CanObjectId = HWObj_2,\r
+ .CanIdType = CAN_ID_TYPE_STANDARD,\r
+ .CanIdValue = 0x0,\r
+ .CanObjectType = CAN_OBJECT_TYPE_TRANSMIT,\r
+ .CanFilterMaskRef = 0,\r
+ \r
+ .Can_Arc_Flags = (0),\r
+ \r
+ \r
+ /* Mailbox(es): 9 */\r
+ .ArcMailboxMask = 0x200ULL ,\r
+ },\r
+};\r
+\r
+PduIdType Can_swPduHandles_Controller_1[1];\r
+\r
+// NEW\r
+const uint8 Can_MailBoxToHrh_Controller_1[]= {\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0, \r
+ HWObj_1,\r
+};\r
+\r
+\r
+\r
+const Can_ControllerConfigType CanControllerConfigData[] =\r
+{ \r
+ {\r
+ .CanControllerActivation = TRUE,\r
+ .CanControllerBaudRate = 125,\r
+ .CanControllerId = FLEXCAN_A,\r
+ .CanControllerPropSeg = 4,\r
+ .CanControllerSeg1 = 4,\r
+ .CanControllerSeg2 = 4,\r
+ .Can_Arc_Flags = (CAN_CTRL_BUSOFF_PROCESSING_INTERRUPT | CAN_CTRL_RX_PROCESSING_INTERRUPT | CAN_CTRL_TX_PROCESSING_INTERRUPT | CAN_CTRL_WAKEUP_PROCESSING_INTERRUPT | CAN_CTRL_ERROR_PROCESSING_INTERRUPT | CAN_CTRL_ACTIVATION),\r
+ .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_A,\r
+ .Can_Arc_Hoh = &CanHardwareObjectConfig_Controller_1[0],\r
+ .Can_Arc_HohCnt = 2,\r
+ .Can_Arc_HohFifoCnt = 0,\r
+ .Can_Arc_RxMailBoxMask = 0x100ULL,\r
+ .Can_Arc_TxMailBoxMask = 0x200ULL,\r
+ .Can_Arc_TxMailboxStart = 9,\r
+ .Can_Arc_MailBoxToHrh = Can_MailBoxToHrh_Controller_1,\r
+ .Can_Arc_TxPduHandles = Can_swPduHandles_Controller_1,\r
+ .Can_Arc_MailboxMax = 10,\r
+ },\r
+};\r
+\r
+const uint8 Can_HthToUnit[] = {\r
+ [HWObj_2] = 0,\r
+};\r
+\r
+const uint8 Can_HthToHohMap[] = {\r
+ [HWObj_2] = 1,\r
+};\r
+\r
+const uint8 Can_CtrlToUnit[] = {\r
+ [FLEXCAN_A] = 0,\r
+};\r
+\r
+const Can_CallbackType CanCallbackConfigData = {\r
+ NULL, //CanIf_CancelTxConfirmation,\r
+ CanIf_RxIndication,\r
+ CanIf_ControllerBusOff,\r
+ CanIf_TxConfirmation,\r
+ NULL, //CanIf_ControllerWakeup,\r
+ CanIf_Arc_Error,\r
+};\r
+\r
+const Can_ConfigSetType CanConfigSetData =\r
+{\r
+ .CanController = CanControllerConfigData,\r
+ .CanCallbacks = &CanCallbackConfigData,\r
+ .ArcHthToUnit = Can_HthToUnit,\r
+ .ArcHthToHoh = Can_HthToHohMap,\r
+ .ArcCtrlToUnit = Can_CtrlToUnit,\r
+};\r
+\r
+const Can_ConfigType CanConfigData = {\r
+ .CanConfigSet = &CanConfigSetData,\r
+};\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Com (Com_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.1.1\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((COM_SW_MAJOR_VERSION == 1) && (COM_SW_MINOR_VERSION == 2)) )
+#error Com: Configuration file expected BSW module version to be 1.2.*
+#endif
+
+\r
+#ifndef COM_CFG_H\r
+#define COM_CFG_H\r
+\r
+#define COM_MODULE_ID 20\r
+#define COM_INSTANCE_ID 1\r
+\r
+#define COM_DEV_ERROR_DETECT STD_ON\r
+\r
+#define COM_N_IPDUS 4\r
+#define COM_N_SIGNALS 5\r
+#define COM_N_GROUP_SIGNALS 0\r
+\r
+#define COM_E_INVALID_FILTER_CONFIGURATION 101\r
+#define COM_E_INITIALIZATION_FAILED 102\r
+#define COM_E_INVALID_SIGNAL_CONFIGURATION 103\r
+#define COM_INVALID_PDU_ID 104\r
+#define COM_INVALID_SIGNAL_ID 109\r
+#define COM_ERROR_SIGNAL_IS_SIGNALGROUP 105\r
+\r
+#define COM_E_TOO_MANY_IPDU 106\r
+#define COM_E_TOO_MANY_SIGNAL 107\r
+#define COM_E_TOO_MANY_GROUPSIGNAL 108\r
+\r
+#define CPU_ENDIANESS COM_BIG_ENDIAN\r
+\r
+#define ComConfigurationTimeBase 0.0\r
+#define ComVersionInfoApi\r
+\r
+#endif /*COM_CFG_H*/\r
--- /dev/null
+/*\r
+* Configuration of module: Com (Com_PbCfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.1.1\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+\r
+#include "Com.h"\r
+#include "Com_Internal.h"\r
+#include <stdlib.h>\r
+#if defined(USE_PDUR)\r
+#include "PduR.h"\r
+#endif\r
+\r
+\r
+/*\r
+ * Signal init values.\r
+ */\r
+const uint8 Com_SignalInitValue_Arg1 = 5;\r
+const uint8 Com_SignalInitValue_ResultSig = 0;\r
+const uint8 Com_SignalInitValue_Arg2 = 3;\r
+const uint32 Com_SignalInitValue_FreqIndSig = 0;\r
+const uint32 Com_SignalInitValue_FreqReqSig = 1000;\r
+ \r
+\r
+/*\r
+ * Group signal definitions\r
+ */\r
+const ComGroupSignal_type ComGroupSignal[] = {\r
+ {\r
+ .Com_Arc_EOL = 1\r
+ }\r
+};\r
+\r
+\r
+/* SignalGroup GroupSignals lists. */\r
+\r
+\r
+/* IPdu buffers and signal group buffers */\r
+uint8 ComArcIPduBuffer_FreqInd[8]; \r
+ \r
+uint8 ComArcIPduBuffer_FreqReq[8];\r
+uint8 ComArcIPduDeferredRxBuffer_FreqReq[8]; \r
+ \r
+uint8 ComArcIPduBuffer_RX_PDU[8];\r
+uint8 ComArcIPduDeferredRxBuffer_RX_PDU[8]; \r
+ \r
+uint8 ComArcIPduBuffer_TX_PDU[8]; \r
+ \r
+\r
+/*\r
+ * Signal definitions\r
+ */\r
+ \r
+const ComSignal_type ComSignal[] = {\r
+ {\r
+ .ComHandleId = Arg1,\r
+ .ComIPduHandleId = 2,\r
+ .Com_Arc_ShadowBuffer = NULL,\r
+ .ComFirstTimeoutFactor = 0,\r
+ .ComNotification = NULL,\r
+ .ComTimeoutFactor = 0,\r
+ .ComTimeoutNotification = NULL,\r
+ .ComErrorNotification = NULL,\r
+ .ComTransferProperty = PENDING,\r
+ \r
+ .ComUpdateBitPosition = 0,\r
+ .ComSignalArcUseUpdateBit = 0,\r
+ \r
+ \r
+ .ComSignalInitValue = &Com_SignalInitValue_Arg1,\r
+ \r
+ .ComBitPosition = 7,\r
+ .ComBitSize = 8,\r
+ \r
+ .ComSignalEndianess = COM_BIG_ENDIAN,\r
+ .ComSignalType = UINT8,\r
+ .Com_Arc_IsSignalGroup = 0,\r
+ .ComGroupSignal = NULL,\r
+ \r
+ \r
+ .ComRxDataTimeoutAction = COM_TIMEOUT_DATA_ACTION_NONE,\r
+ \r
+ .Com_Arc_EOL = 0\r
+ },\r
+ {\r
+ .ComHandleId = ResultSig,\r
+ .ComIPduHandleId = 3,\r
+ .Com_Arc_ShadowBuffer = NULL,\r
+ .ComFirstTimeoutFactor = 0,\r
+ .ComNotification = NULL,\r
+ .ComTimeoutFactor = 0,\r
+ .ComTimeoutNotification = NULL,\r
+ .ComErrorNotification = NULL,\r
+ .ComTransferProperty = TRIGGERED,\r
+ \r
+ .ComUpdateBitPosition = 0,\r
+ .ComSignalArcUseUpdateBit = 0,\r
+ \r
+ \r
+ .ComSignalInitValue = &Com_SignalInitValue_ResultSig,\r
+ \r
+ .ComBitPosition = 7,\r
+ .ComBitSize = 8,\r
+ \r
+ .ComSignalEndianess = COM_BIG_ENDIAN,\r
+ .ComSignalType = UINT8,\r
+ .Com_Arc_IsSignalGroup = 0,\r
+ .ComGroupSignal = NULL,\r
+ \r
+ \r
+ .ComRxDataTimeoutAction = COM_TIMEOUT_DATA_ACTION_NONE,\r
+ \r
+ .Com_Arc_EOL = 0\r
+ },\r
+ {\r
+ .ComHandleId = Arg2,\r
+ .ComIPduHandleId = 2,\r
+ .Com_Arc_ShadowBuffer = NULL,\r
+ .ComFirstTimeoutFactor = 0,\r
+ .ComNotification = NULL,\r
+ .ComTimeoutFactor = 0,\r
+ .ComTimeoutNotification = NULL,\r
+ .ComErrorNotification = NULL,\r
+ .ComTransferProperty = PENDING,\r
+ \r
+ .ComUpdateBitPosition = 0,\r
+ .ComSignalArcUseUpdateBit = 0,\r
+ \r
+ \r
+ .ComSignalInitValue = &Com_SignalInitValue_Arg2,\r
+ \r
+ .ComBitPosition = 15,\r
+ .ComBitSize = 8,\r
+ \r
+ .ComSignalEndianess = COM_BIG_ENDIAN,\r
+ .ComSignalType = UINT8,\r
+ .Com_Arc_IsSignalGroup = 0,\r
+ .ComGroupSignal = NULL,\r
+ \r
+ \r
+ .ComRxDataTimeoutAction = COM_TIMEOUT_DATA_ACTION_NONE,\r
+ \r
+ .Com_Arc_EOL = 0\r
+ },\r
+ {\r
+ .ComHandleId = FreqIndSig,\r
+ .ComIPduHandleId = 0,\r
+ .Com_Arc_ShadowBuffer = NULL,\r
+ .ComFirstTimeoutFactor = 0,\r
+ .ComNotification = NULL,\r
+ .ComTimeoutFactor = 0,\r
+ .ComTimeoutNotification = NULL,\r
+ .ComErrorNotification = NULL,\r
+ .ComTransferProperty = TRIGGERED,\r
+ \r
+ .ComUpdateBitPosition = 0,\r
+ .ComSignalArcUseUpdateBit = 0,\r
+ \r
+ \r
+ .ComSignalInitValue = &Com_SignalInitValue_FreqIndSig,\r
+ \r
+ .ComBitPosition = 7,\r
+ .ComBitSize = 32,\r
+ \r
+ .ComSignalEndianess = COM_BIG_ENDIAN,\r
+ .ComSignalType = UINT32,\r
+ .Com_Arc_IsSignalGroup = 0,\r
+ .ComGroupSignal = NULL,\r
+ \r
+ \r
+ .ComRxDataTimeoutAction = COM_TIMEOUT_DATA_ACTION_NONE,\r
+ \r
+ .Com_Arc_EOL = 0\r
+ },\r
+ {\r
+ .ComHandleId = FreqReqSig,\r
+ .ComIPduHandleId = 1,\r
+ .Com_Arc_ShadowBuffer = NULL,\r
+ .ComFirstTimeoutFactor = 0,\r
+ .ComNotification = Rte_COMCbk_FreqReqSig,\r
+ .ComTimeoutFactor = 0,\r
+ .ComTimeoutNotification = NULL,\r
+ .ComErrorNotification = NULL,\r
+ .ComTransferProperty = PENDING,\r
+ \r
+ .ComUpdateBitPosition = 0,\r
+ .ComSignalArcUseUpdateBit = 0,\r
+ \r
+ \r
+ .ComSignalInitValue = &Com_SignalInitValue_FreqReqSig,\r
+ \r
+ .ComBitPosition = 7,\r
+ .ComBitSize = 32,\r
+ \r
+ .ComSignalEndianess = COM_BIG_ENDIAN,\r
+ .ComSignalType = UINT32,\r
+ .Com_Arc_IsSignalGroup = 0,\r
+ .ComGroupSignal = NULL,\r
+ \r
+ \r
+ .ComRxDataTimeoutAction = COM_TIMEOUT_DATA_ACTION_NONE,\r
+ \r
+ .Com_Arc_EOL = 0\r
+ },\r
+ {\r
+ .Com_Arc_EOL = 1\r
+ }\r
+};\r
+\r
+\r
+/*\r
+ * I-PDU group definitions\r
+ */\r
+const ComIPduGroup_type ComIPduGroup[] = {\r
+ {\r
+ .ComIPduGroupHandleId = ComPduGroup,\r
+ .Com_Arc_EOL = 0\r
+ },\r
+ \r
+ {\r
+ .Com_Arc_EOL = 1\r
+ }\r
+};\r
+\r
+/* IPdu signal lists. */\r
+const ComSignal_type * const ComIPduSignalRefs_FreqInd[] = {\r
+ &ComSignal[ FreqIndSig ], \r
+ NULL,\r
+};\r
+const ComSignal_type * const ComIPduSignalRefs_FreqReq[] = {\r
+ &ComSignal[ FreqReqSig ], \r
+ NULL,\r
+};\r
+const ComSignal_type * const ComIPduSignalRefs_RX_PDU[] = {\r
+ &ComSignal[ Arg1 ],\r
+ &ComSignal[ Arg2 ], \r
+ NULL,\r
+};\r
+const ComSignal_type * const ComIPduSignalRefs_TX_PDU[] = {\r
+ &ComSignal[ ResultSig ], \r
+ NULL,\r
+};\r
+\r
+/*\r
+ * I-PDU definitions\r
+ */\r
+const ComIPdu_type ComIPdu[] = { \r
+ \r
+ { // FreqInd\r
+ .ArcIPduOutgoingId = PDUR_PDU_ID_FreqInd,\r
+ .ComIPduCallout = NULL,\r
+ \r
+ .ComIPduSignalProcessing = DEFERRED,\r
+ .ComIPduSize = 8,\r
+ .ComIPduDirection = SEND,\r
+ .ComIPduGroupRef = ComPduGroup,\r
+ \r
+ .ComIPduDeferredDataPtr = 0, \r
+ .ComTxIPdu = {\r
+ .ComTxIPduMinimumDelayFactor = 0,\r
+ .ComTxIPduUnusedAreasDefault = 0,\r
+ .ComTxModeTrue = {\r
+ .ComTxModeMode = DIRECT,\r
+ .ComTxModeNumberOfRepetitions = 0,\r
+ .ComTxModeRepetitionPeriodFactor = 0,\r
+ .ComTxModeTimeOffsetFactor = 0,\r
+ .ComTxModeTimePeriodFactor = 0,\r
+ },\r
+ },\r
+ \r
+ .ComIPduDataPtr = ComArcIPduBuffer_FreqInd, \r
+ .ComIPduSignalRef = ComIPduSignalRefs_FreqInd,\r
+ .ComIPduDynSignalRef = 0,\r
+ .Com_Arc_EOL = 0\r
+ }, \r
+ { // FreqReq\r
+ .ArcIPduOutgoingId = PDUR_REVERSE_PDU_ID_FreqReq,\r
+ .ComIPduCallout = NULL,\r
+ \r
+ .ComIPduSignalProcessing = DEFERRED,\r
+ .ComIPduSize = 8,\r
+ .ComIPduDirection = RECEIVE,\r
+ .ComIPduGroupRef = ComPduGroup,\r
+ \r
+ .ComIPduDeferredDataPtr = ComArcIPduDeferredRxBuffer_FreqReq,\r
+ .ComTxIPdu = {\r
+ .ComTxIPduMinimumDelayFactor = 0,\r
+ .ComTxIPduUnusedAreasDefault = 0,\r
+ .ComTxModeTrue = {\r
+ .ComTxModeMode = NONE,\r
+ .ComTxModeNumberOfRepetitions = 0,\r
+ .ComTxModeRepetitionPeriodFactor = 0,\r
+ .ComTxModeTimeOffsetFactor = 0,\r
+ .ComTxModeTimePeriodFactor = 0,\r
+ },\r
+ },\r
+ \r
+ .ComIPduDataPtr = ComArcIPduBuffer_FreqReq, \r
+ .ComIPduSignalRef = ComIPduSignalRefs_FreqReq,\r
+ .ComIPduDynSignalRef = 0,\r
+ .Com_Arc_EOL = 0\r
+ }, \r
+ { // RX_PDU\r
+ .ArcIPduOutgoingId = PDUR_REVERSE_PDU_ID_RX_PDU,\r
+ .ComIPduCallout = NULL,\r
+ \r
+ .ComIPduSignalProcessing = DEFERRED,\r
+ .ComIPduSize = 8,\r
+ .ComIPduDirection = RECEIVE,\r
+ .ComIPduGroupRef = ComPduGroup,\r
+ \r
+ .ComIPduDeferredDataPtr = ComArcIPduDeferredRxBuffer_RX_PDU,\r
+ .ComTxIPdu = {\r
+ .ComTxIPduMinimumDelayFactor = 0,\r
+ .ComTxIPduUnusedAreasDefault = 0,\r
+ .ComTxModeTrue = {\r
+ .ComTxModeMode = NONE,\r
+ .ComTxModeNumberOfRepetitions = 0,\r
+ .ComTxModeRepetitionPeriodFactor = 0,\r
+ .ComTxModeTimeOffsetFactor = 0,\r
+ .ComTxModeTimePeriodFactor = 0,\r
+ },\r
+ },\r
+ \r
+ .ComIPduDataPtr = ComArcIPduBuffer_RX_PDU, \r
+ .ComIPduSignalRef = ComIPduSignalRefs_RX_PDU,\r
+ .ComIPduDynSignalRef = 0,\r
+ .Com_Arc_EOL = 0\r
+ }, \r
+ { // TX_PDU\r
+ .ArcIPduOutgoingId = PDUR_PDU_ID_TX_PDU,\r
+ .ComIPduCallout = NULL,\r
+ \r
+ .ComIPduSignalProcessing = DEFERRED,\r
+ .ComIPduSize = 8,\r
+ .ComIPduDirection = SEND,\r
+ .ComIPduGroupRef = ComPduGroup,\r
+ \r
+ .ComIPduDeferredDataPtr = 0, \r
+ .ComTxIPdu = {\r
+ .ComTxIPduMinimumDelayFactor = 0,\r
+ .ComTxIPduUnusedAreasDefault = 0,\r
+ .ComTxModeTrue = {\r
+ .ComTxModeMode = DIRECT,\r
+ .ComTxModeNumberOfRepetitions = 0,\r
+ .ComTxModeRepetitionPeriodFactor = 0,\r
+ .ComTxModeTimeOffsetFactor = 0,\r
+ .ComTxModeTimePeriodFactor = 0,\r
+ },\r
+ },\r
+ \r
+ .ComIPduDataPtr = ComArcIPduBuffer_TX_PDU, \r
+ .ComIPduSignalRef = ComIPduSignalRefs_TX_PDU,\r
+ .ComIPduDynSignalRef = 0,\r
+ .Com_Arc_EOL = 0\r
+ }, \r
+ {\r
+ .Com_Arc_EOL = 1\r
+ }\r
+};\r
+\r
+const Com_ConfigType ComConfiguration = {\r
+ .ComConfigurationId = 1,\r
+ .ComIPdu = ComIPdu,\r
+ .ComIPduGroup = ComIPduGroup,\r
+ .ComSignal = ComSignal,\r
+ .ComGroupSignal = ComGroupSignal\r
+};\r
+\r
+Com_Arc_IPdu_type Com_Arc_IPdu[] = {\r
+ { // FreqInd\r
+ .Com_Arc_TxIPduTimers = {\r
+ .ComTxIPduNumberOfRepetitionsLeft = 0,\r
+ .ComTxModeRepetitionPeriodTimer = 0,\r
+ .ComTxIPduMinimumDelayTimer = 0,\r
+ .ComTxModeTimePeriodTimer = 0\r
+ }, \r
+ .Com_Arc_IpduStarted = 0 \r
+ },\r
+ { // FreqReq\r
+ .Com_Arc_TxIPduTimers = {\r
+ .ComTxIPduNumberOfRepetitionsLeft = 0,\r
+ .ComTxModeRepetitionPeriodTimer = 0,\r
+ .ComTxIPduMinimumDelayTimer = 0,\r
+ .ComTxModeTimePeriodTimer = 0\r
+ }, \r
+ .Com_Arc_IpduStarted = 0 \r
+ },\r
+ { // RX_PDU\r
+ .Com_Arc_TxIPduTimers = {\r
+ .ComTxIPduNumberOfRepetitionsLeft = 0,\r
+ .ComTxModeRepetitionPeriodTimer = 0,\r
+ .ComTxIPduMinimumDelayTimer = 0,\r
+ .ComTxModeTimePeriodTimer = 0\r
+ }, \r
+ .Com_Arc_IpduStarted = 0 \r
+ },\r
+ { // TX_PDU\r
+ .Com_Arc_TxIPduTimers = {\r
+ .ComTxIPduNumberOfRepetitionsLeft = 0,\r
+ .ComTxModeRepetitionPeriodTimer = 0,\r
+ .ComTxIPduMinimumDelayTimer = 0,\r
+ .ComTxModeTimePeriodTimer = 0\r
+ }, \r
+ .Com_Arc_IpduStarted = 0 \r
+ },\r
+};\r
+\r
+Com_Arc_Signal_type Com_Arc_Signal[] = {\r
+ { // Arg1\r
+ .Com_Arc_DeadlineCounter = 0,\r
+ .ComSignalUpdated = 0,\r
+ },\r
+ \r
+ { // ResultSig\r
+ .Com_Arc_DeadlineCounter = 0,\r
+ .ComSignalUpdated = 0,\r
+ },\r
+ \r
+ { // Arg2\r
+ .Com_Arc_DeadlineCounter = 0,\r
+ .ComSignalUpdated = 0,\r
+ },\r
+ \r
+ { // FreqIndSig\r
+ .Com_Arc_DeadlineCounter = 0,\r
+ .ComSignalUpdated = 0,\r
+ },\r
+ \r
+ { // FreqReqSig\r
+ .Com_Arc_DeadlineCounter = 0,\r
+ .ComSignalUpdated = 0,\r
+ },\r
+ \r
+};\r
+\r
+\r
+Com_Arc_Config_type Com_Arc_Config = {\r
+ .ComIPdu = Com_Arc_IPdu,\r
+ .ComSignal = Com_Arc_Signal,\r
+ .ComGroupSignal = NULL\r
+};\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Com (Com_PbCfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.1.1\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((COM_SW_MAJOR_VERSION == 1) && (COM_SW_MINOR_VERSION == 2)) )
+#error Com: Configuration file expected BSW module version to be 1.2.*
+#endif
+
+#ifndef COM_PBCFG_H\r
+#define COM_PBCFG_H\r
+\r
+#include "Com_Types.h"\r
+\r
+extern const Com_ConfigType ComConfiguration;\r
+\r
+// COM Polite Defines.\r
+#define COM_PDU_ID_FreqInd 0\r
+#define COM_PDU_ID_FreqReq 1\r
+#define COM_PDU_ID_RX_PDU 2\r
+#define COM_PDU_ID_TX_PDU 3\r
+\r
+\r
+\r
+// PDU group definitions\r
+#define ComPduGroup 0\r
+\r
+\r
+// Signal definitions\r
+#define Arg1 0\r
+#define ResultSig 1\r
+#define Arg2 2\r
+#define FreqIndSig 3\r
+#define FreqReqSig 4\r
+\r
+\r
+\r
+// Notifications\r
+\r
+void Rte_COMCbk_FreqReqSig(void);
+\r
+\r
+// Callouts\r
+\r
+\r
+#endif /* COM_PBCFG_H */\r
--- /dev/null
+/*\r
+* Configuration of module: Det (Det_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.1\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((DET_SW_MAJOR_VERSION == 1) && (DET_SW_MINOR_VERSION == 0)) )
+#error Det: Configuration file expected BSW module version to be 1.0.*
+#endif
+
+/*\r
+ * Development Error Tracer driver\r
+ *\r
+ * Specification: Autosar v2.0.1, Final\r
+ *\r
+ */\r
+#ifndef DET_CFG_H\r
+#define DET_CFG_H \r
+\r
+#define DET_ENABLE_CALLBACKS STD_OFF // Enable to use callback on errors\r
+#define DET_USE_RAMLOG STD_ON // Enable to log DET errors to ramlog\r
+#define DET_WRAP_RAMLOG STD_ON // The ramlog wraps around when reaching the end\r
+#define DET_USE_STDERR STD_OFF // Enable to get DET errors on stderr\r
+#define DET_DEINIT_API STD_OFF // Enable/Disable the Det_DeInit function\r
+#define DET_RAMLOG_SIZE (16) // Number of entries in ramlog\r
+#define DET_NUMBER_OF_CALLBACKS (5) // Number of callbacks\r
+\r
+#endif /* DET_CFG_H */\r
--- /dev/null
+/*\r
+* Configuration of module: Dio (Dio_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.0\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((DIO_SW_MAJOR_VERSION == 1) && (DIO_SW_MINOR_VERSION == 0)) )
+#error Dio: Configuration file expected BSW module version to be 1.0.*
+#endif
+
+\r
+#ifndef DIO_CFG_H_\r
+#define DIO_CFG_H_\r
+\r
+#define DIO_VERSION_INFO_API STD_OFF\r
+#define DIO_DEV_ERROR_DETECT STD_OFF\r
+\r
+#define DIO_END_OF_LIST (-1u)\r
+\r
+// Physical ports\r
+typedef enum\r
+{\r
+ DIO_MPC5567_GENERIC_PORT = 0,\r
+} Dio_PortTypesType;\r
+\r
+\r
+// Channels \r
+#define DIO_CHANNEL_NAME_LED_CHANNEL 0\r
+\r
+// Channel group\r
+\r
+// Ports\r
+#define DIO_PORT_NAME_LED_PORT (DIO_MPC5567_GENERIC_PORT)\r
+\r
+\r
+\r
+\r
+// Pointers for convenience.\r
+// Channels \r
+extern const Dio_ChannelType DioChannelConfigData[];\r
+// Channel group\r
+extern const Dio_ChannelGroupType DioConfigData[];\r
+// Port\r
+extern const Dio_PortType DioPortConfigData[];\r
+\r
+#endif /*DIO_CFG_H_*/\r
--- /dev/null
+/*\r
+* Configuration of module: Dio (Dio_Lcfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.0\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+\r
+ \r
+#include "Dio.h"\r
+#include "Dio_Cfg.h"\r
+\r
+const Dio_ChannelType DioChannelConfigData[] = { \r
+ DIO_CHANNEL_NAME_LED_CHANNEL,\r
+ DIO_END_OF_LIST\r
+};\r
+\r
+const Dio_PortType DioPortConfigData[] = { \r
+ DIO_PORT_NAME_LED_PORT, \r
+ DIO_END_OF_LIST\r
+};\r
+\r
+const Dio_ChannelGroupType DioConfigData[] = {\r
+ { \r
+ .port = DIO_END_OF_LIST, \r
+ .offset = 0, \r
+ .mask = 0, \r
+ }\r
+};\r
+\r
+\r
+uint32 Dio_GetPortConfigSize(void)\r
+{\r
+ return sizeof(DioConfigData);\r
+}\r
--- /dev/null
+\r
+MOD_USE += CANIF COM DET ECUM KERNEL PDUR RTE CAN MCU DIO PORT \r
+\r
--- /dev/null
+/*\r
+* Configuration of module: EcuM (EcuM_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((ECUM_SW_MAJOR_VERSION == 2) && (ECUM_SW_MINOR_VERSION == 0)) )
+#error EcuM: Configuration file expected BSW module version to be 2.0.*
+#endif
+
+\r
+\r
+#ifndef ECUM_CFG_H_\r
+#define ECUM_CFG_H_\r
+\r
+#define ECUM_VERSION_INFO_API STD_OFF\r
+#define ECUM_DEV_ERROR_DETECT STD_OFF\r
+\r
+#define ECUM_MAIN_FUNCTION_PERIOD (200)\r
+#define ECUM_NVRAM_READALL_TIMEOUT (10000)\r
+#define ECUM_NVRAM_WRITEALL_TIMEOUT (10000)\r
+#define ECUM_NVRAM_MIN_RUN_DURATION (10000)\r
+\r
+\r
+typedef enum {\r
+ ECUM_USER_User_1,\r
+ ECUM_USER_ENDMARK // Must be the last in list!\r
+} EcuM_UserList;\r
+\r
+\r
+#endif /*ECUM_CFG_H_*/\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: EcuM (EcuM_Generated_Types.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((ECUM_SW_MAJOR_VERSION == 2) && (ECUM_SW_MINOR_VERSION == 0)) )
+#error EcuM: Configuration file expected BSW module version to be 2.0.*
+#endif
+
+\r
+#ifndef _ECUM_GENERATED_TYPES_H_\r
+#define _ECUM_GENERATED_TYPES_H_\r
+\r
+#ifdef CFG_ECUM_USE_SERVICE_COMPONENT\r
+#include "Rte_EcuM.h"\r
+#endif\r
+\r
+#include "EcuM_Types.h"\r
+\r
+#if defined(USE_MCU)\r
+#include "Mcu.h"\r
+#endif\r
+#if defined(USE_PORT)\r
+#include "Port.h"\r
+#endif\r
+#if defined(USE_CAN)\r
+#include "Can.h"\r
+#endif\r
+#if defined(USE_CANIF)\r
+#include "CanIf.h"\r
+#endif\r
+#if defined(USE_PWM)\r
+#include "Pwm.h"\r
+#endif\r
+#if defined(USE_COM)\r
+#include "Com.h"\r
+#endif\r
+#if defined(USE_PDUR)\r
+#include "PduR.h"\r
+#endif\r
+#if defined(USE_DMA)\r
+#include "Dma.h"\r
+#endif\r
+#if defined(USE_ADC)\r
+#include "Adc.h"\r
+#endif\r
+#if defined(USE_GPT)\r
+#include "Gpt.h"\r
+#endif\r
+#if defined(USE_COMM)\r
+#include "ComM.h"\r
+#endif\r
+#if defined(USE_NM)\r
+#include "Nm.h"\r
+#endif\r
+#if defined(USE_CANNM)\r
+#include "CanNm.h"\r
+#endif\r
+#if defined(USE_CANSM)\r
+#include "CanSM.h"\r
+#endif\r
+#if defined(USE_J1939TP)\r
+#include "J1939Tp.h"\r
+#endif\r
+#if defined(USE_UDPNM)\r
+#include "UdpNm.h"\r
+#endif\r
+#if defined(USE_LINSM)\r
+#include "LinSM.h"\r
+#endif\r
+#if defined(USE_FLS)\r
+#include "Fls.h"\r
+#endif\r
+#if defined(USE_EEP)\r
+#include "Eep.h"\r
+#endif\r
+#if defined(USE_SPI)\r
+#include "Spi.h"\r
+#endif\r
+#if defined(USE_WDG)\r
+#include "Wdg.h"\r
+#endif\r
+#if defined(USE_WDGM)\r
+#include "WdgM.h"\r
+#endif\r
+#if defined(USE_WDGIF)\r
+#include "WdgIf.h"\r
+#endif\r
+\r
+\r
+typedef struct\r
+{\r
+ EcuM_StateType EcuMDefaultShutdownTarget;\r
+ uint8 EcuMDefaultSleepMode;\r
+ AppModeType EcuMDefaultAppMode;\r
+ uint32 EcuMRunMinimumDuration;\r
+ uint32 EcuMNvramReadAllTimeout;\r
+ uint32 EcuMNvramWriteAllTimeout;\r
+\r
+#if defined(USE_MCU)\r
+ const Mcu_ConfigType* McuConfig;\r
+#endif\r
+#if defined(USE_PORT)\r
+ const Port_ConfigType* PortConfig;\r
+#endif\r
+#if defined(USE_CAN)\r
+ const Can_ConfigType* CanConfig;\r
+#endif\r
+#if defined(USE_CANIF)\r
+ const CanIf_ConfigType* CanIfConfig;\r
+#endif\r
+#if defined(USE_CANSM)\r
+ const CanSM_ConfigType* CanSMConfig;\r
+#endif\r
+#if defined(USE_NM)\r
+ const Nm_ConfigType* NmConfig;\r
+#endif\r
+#if defined(USE_CANNM)\r
+ const CanNm_ConfigType* CanNmConfig;\r
+#endif\r
+#if defined(USE_UDPNM)\r
+ const UdpNm_ConfigType* UdpNmConfig;\r
+#endif\r
+#if defined(USE_COMM)\r
+ const ComM_ConfigType* ComMConfig;\r
+#endif\r
+#if defined(USE_COM)\r
+ const Com_ConfigType* ComConfig;\r
+#endif\r
+#if defined(USE_J1939TP)\r
+ const J1939Tp_ConfigType* J1939TpConfig;\r
+#endif\r
+#if defined(USE_PDUR)\r
+ const PduR_PBConfigType* PduRConfig;\r
+#endif\r
+#if defined(USE_PWM)\r
+ const Pwm_ConfigType* PwmConfig;\r
+#endif\r
+#if defined(USE_DMA)\r
+ const Dma_ConfigType* DmaConfig;\r
+#endif\r
+#if defined(USE_ADC)\r
+ const Adc_ConfigType* AdcConfig;\r
+#endif\r
+#if defined(USE_GPT)\r
+ const Gpt_ConfigType* GptConfig;\r
+#endif\r
+#if defined(USE_FLS)\r
+ const Fls_ConfigType* FlashConfig;\r
+#endif\r
+#if defined(USE_EEP)\r
+ const Eep_ConfigType* EepConfig;\r
+#endif\r
+#if defined(USE_SPI)\r
+ const Spi_ConfigType* SpiConfig;\r
+#endif\r
+#if defined(USE_WDG)\r
+ const Wdg_ConfigType* WdgConfig;\r
+#endif\r
+#if defined(USE_WDGIF)\r
+ const WdgIf_ConfigType* WdgIfConfig;\r
+#endif\r
+#if defined(USE_WDGM)\r
+ const WdgM_ConfigType* WdgMConfig;\r
+#endif\r
+} EcuM_ConfigType;\r
+\r
+#endif /*_ECUM_GENERATED_TYPES_H_*/\r
--- /dev/null
+/*\r
+* Configuration of module: EcuM (EcuM_PBcfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+\r
+\r
+#include "EcuM.h"\r
+#include "EcuM_Generated_Types.h"\r
+\r
+#if defined(USE_CANSM)\r
+extern const CanSM_ConfigType CanSM_Config;\r
+#endif\r
+#if defined(USE_NM)\r
+extern const Nm_ConfigType Nm_Config;\r
+#endif\r
+#if defined(USE_CANNM)\r
+extern const CanNm_ConfigType CanNm_Config;\r
+#endif\r
+#if defined(USE_UDPNM)\r
+extern const UdpNm_ConfigType UdpNm_Config;\r
+#endif\r
+#if defined(USE_COMM)\r
+extern const ComM_ConfigType ComM_Config;\r
+#endif\r
+\r
+#if defined(USE_J1939TP)\r
+extern const J1939Tp_ConfigType J1939Tp_Config;\r
+#endif\r
+\r
+\r
+EcuM_ConfigType EcuMConfig =\r
+{\r
+ .EcuMDefaultShutdownTarget = ECUM_STATE_RESET,\r
+ .EcuMDefaultSleepMode = 0, // Don't care\r
+ .EcuMDefaultAppMode = OSDEFAULTAPPMODE,\r
+ .EcuMNvramReadAllTimeout = ECUM_NVRAM_READALL_TIMEOUT,\r
+ .EcuMNvramWriteAllTimeout = ECUM_NVRAM_WRITEALL_TIMEOUT,\r
+ .EcuMRunMinimumDuration = ECUM_NVRAM_MIN_RUN_DURATION,\r
+\r
+#if defined(USE_MCU)\r
+ .McuConfig = McuConfigData,\r
+#endif\r
+#if defined(USE_PORT)\r
+ .PortConfig = &PortConfigData,\r
+#endif\r
+#if defined(USE_CAN)\r
+ .CanConfig = &CanConfigData,\r
+#endif\r
+#if defined(USE_CANIF)\r
+ .CanIfConfig = &CanIf_Config,\r
+#endif\r
+#if defined(USE_CANSM)\r
+ .CanSMConfig = &CanSM_Config,\r
+#endif\r
+#if defined(USE_CANNM)\r
+ .CanNmConfig = &CanNm_Config,\r
+#endif\r
+#if defined(USE_UDPNM)\r
+ .UdpNmConfig = &UdpNm_Config,\r
+#endif\r
+#if defined(USE_COM)\r
+ .ComConfig = &ComConfiguration,\r
+#endif\r
+#if defined(USE_COMM)\r
+ .ComMConfig = &ComM_Config,\r
+#endif\r
+#if defined(USE_J1939TP)\r
+ .J1939TpConfig = &J1939Tp_Config,\r
+#endif\r
+#if defined(USE_NM)\r
+ .NmConfig = &Nm_Config,\r
+#endif\r
+#if defined(USE_PDUR)\r
+ .PduRConfig = &PduR_Config,\r
+#endif\r
+#if defined(USE_J1939TP)\r
+ .J1939TpConfig = &J1939Tp_Config,\r
+#endif\r
+#if defined(USE_DMA)\r
+ .DmaConfig = DmaConfig,\r
+#endif\r
+#if defined(USE_ADC)\r
+ .AdcConfig = AdcConfig,\r
+#endif\r
+#if defined(USE_PWM)\r
+ .PwmConfig = &PwmConfig,\r
+#endif\r
+#if defined(USE_WDG)\r
+ .WdgConfig = &WdgConfig,\r
+#endif\r
+#if defined(USE_WDGM)\r
+ .WdgMConfig = &WdgMConfig,\r
+#endif\r
+#if defined(USE_WDGIF)\r
+ .WdgIfConfig = &WdgIfConfig,\r
+#endif\r
+#if defined(USE_GPT)\r
+ .GptConfig = GptConfigData,\r
+#endif\r
+#if defined(USE_FLS)\r
+ .FlashConfig = FlsConfigSet,\r
+#endif\r
+#if defined(USE_EEP)\r
+ .EepConfig = EepConfigData,\r
+#endif\r
+#if defined(USE_SPI)\r
+ .SpiConfig = &SpiConfigData,\r
+#endif\r
+};\r
--- /dev/null
+/*\r
+* Configuration of module: Mcu (Mcu_Cfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.3\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+\r
+#ifndef MCU_CFG_C_\r
+#define MCU_CFG_C_\r
+\r
+#include "Mcu.h"\r
+\r
+\r
+Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
+};\r
+\r
+Mcu_ClockSettingConfigType Mcu_ClockSettingConfigData[] =\r
+{\r
+ {\r
+ .McuClockReferencePointFrequency = 0UL,\r
+ .Pll1 = 0,\r
+ .Pll2 = 0,\r
+ .Pll3 = 0,\r
+ },\r
+};\r
+\r
+\r
+const Mcu_ConfigType McuConfigData[] = {\r
+ {\r
+ .McuClockSrcFailureNotification = 0,\r
+ .McuRamSectors = MCU_NBR_OF_RAM_SECTIONS,\r
+ .McuClockSettings = 1,\r
+ .McuDefaultClockSettings = 0,\r
+ .McuClockSettingConfig = &Mcu_ClockSettingConfigData[0],\r
+ .McuRamSectorSettingConfig = &Mcu_RamSectorSettingConfigData[0],\r
+ }\r
+};\r
+\r
+#endif /*MCU_CFG_C_*/\r
--- /dev/null
+/*\r
+* Configuration of module: Mcu (Mcu_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.3\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((MCU_SW_MAJOR_VERSION == 2) && (MCU_SW_MINOR_VERSION == 0)) )
+#error Mcu: Configuration file expected BSW module version to be 2.0.*
+#endif
+
+\r
+#ifndef MCU_CFG_H_\r
+#define MCU_CFG_H_\r
+\r
+#include "mpc55xx.h"\r
+\r
+\r
+#define MCU_DEV_ERROR_DETECT STD_OFF \r
+#define MCU_PERFORM_RESET_API STD_ON\r
+#define MCU_VERSION_INFO_API STD_ON\r
+\r
+typedef enum {\r
+ MCU_CLOCKTYPE_Clock = 0,\r
+ MCU_NBR_OF_CLOCKS,\r
+} Mcu_ClockType;\r
+\r
+\r
+#define MCU_NBR_OF_RAM_SECTIONS 0\r
+\r
+\r
+#define MCU_DEFAULT_CONFIG McuConfigData[0]\r
+\r
+#endif /*MCU_CFG_H_*/\r
--- /dev/null
+/*\r
+* Configuration of module: Os (Os_Cfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.34\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+ \r
+\r
+#include "kernel.h"\r
+\r
+\r
+// ############################### EXTERNAL REFERENCES #############################\r
+\r
+/* Application externals */\r
+\r
+/* Interrupt externals */\r
+\r
+\r
+// Set the os tick frequency\r
+OsTickType OsTickFreq = 1000;\r
+\r
+\r
+// ############################### DEBUG OUTPUT #############################\r
+uint32 os_dbg_mask = 0;\r
+ \r
+// ############################### APPLICATIONS #############################\r
+GEN_APPLICATION_HEAD = {\r
+ GEN_APPLICATION(\r
+ /* id */ APPLICATION_ID_OsApplication1,\r
+ /* name */ "OsApplication1",\r
+ /* trusted */ true, /* NOT CONFIGURABLE IN TOOLS */\r
+ /* core */ 0, /* Default value, multicore not enabled.*/\r
+ /* StartupHook */ NULL,\r
+ /* ShutdownHook */ NULL,\r
+ /* ErrorHook */ NULL,\r
+ /* rstrtTaskId */ 0 /* NOT CONFIGURABLE IN TOOLS */\r
+ ), \r
+};\r
+// ################################# COUNTERS ###############################\r
+GEN_COUNTER_HEAD = {\r
+ GEN_COUNTER( COUNTER_ID_Counter1,\r
+ "Counter1",\r
+ COUNTER_TYPE_HARD,\r
+ COUNTER_UNIT_NANO,\r
+ 0xffff,\r
+ 1,\r
+ 1,\r
+ 0,\r
+ APPLICATION_ID_OsApplication1, /* Application owner */\r
+ 1 /* Accessing application mask */\r
+ ),\r
+};\r
+\r
+ CounterType Os_Arc_OsTickCounter = COUNTER_ID_Counter1;\r
+\r
+\r
+// ################################## ALARMS ################################\r
+GEN_ALARM_AUTOSTART(ALARM_ID_BlinkerAlarm, ALARM_AUTOSTART_ABSOLUTE, 100, 1000, OSDEFAULTAPPMODE );\r
+ \r
+GEN_ALARM_AUTOSTART(ALARM_ID_MainFunctionAlarm, ALARM_AUTOSTART_ABSOLUTE, 10, 10, OSDEFAULTAPPMODE );\r
+ \r
+GEN_ALARM_AUTOSTART(ALARM_ID_StepAlarm, ALARM_AUTOSTART_ABSOLUTE, 20, 100, OSDEFAULTAPPMODE );\r
+ \r
+\r
+GEN_ALARM_HEAD = {\r
+ GEN_ALARM( ALARM_ID_BlinkerAlarm,\r
+ "BlinkerAlarm",\r
+ COUNTER_ID_Counter1,\r
+ GEN_ALARM_AUTOSTART_NAME(ALARM_ID_BlinkerAlarm),\r
+ ALARM_ACTION_ACTIVATETASK,\r
+ TASK_ID_BlinkerTask,\r
+ 0,\r
+ 0,\r
+ APPLICATION_ID_OsApplication1, /* Application owner */\r
+ 1 /* Accessing application mask */\r
+ ),\r
+ GEN_ALARM( ALARM_ID_MainFunctionAlarm,\r
+ "MainFunctionAlar",\r
+ COUNTER_ID_Counter1,\r
+ GEN_ALARM_AUTOSTART_NAME(ALARM_ID_MainFunctionAlarm),\r
+ ALARM_ACTION_ACTIVATETASK,\r
+ TASK_ID_MainFunctionTask,\r
+ 0,\r
+ 0,\r
+ APPLICATION_ID_OsApplication1, /* Application owner */\r
+ 1 /* Accessing application mask */\r
+ ),\r
+ GEN_ALARM( ALARM_ID_StepAlarm,\r
+ "StepAlarm",\r
+ COUNTER_ID_Counter1,\r
+ GEN_ALARM_AUTOSTART_NAME(ALARM_ID_StepAlarm),\r
+ ALARM_ACTION_SETEVENT,\r
+ TASK_ID_StepTask,\r
+ EVENT_MASK_StepEvent,\r
+ 0,\r
+ APPLICATION_ID_OsApplication1, /* Application owner */\r
+ 1 /* Accessing application mask */\r
+ ),\r
+};\r
+\r
+// ################################ RESOURCES ###############################\r
+\r
+// ############################## STACKS (TASKS) ############################\r
+\r
+DECLARE_STACK(OsIdle,OS_OSIDLE_STACK_SIZE);\r
+\r
+DECLARE_STACK(BlinkerTask,2048);\r
+DECLARE_STACK(MainFunctionTask,2048);\r
+DECLARE_STACK(StartupTask,2048);\r
+DECLARE_STACK(StepTask,2048);\r
+\r
+// ################################## TASKS #################################\r
+GEN_TASK_HEAD = {\r
+ GEN_BTASK( /* */OsIdle,\r
+ /* name */"OsIdle",\r
+ /* priority */0,\r
+ /* schedule */FULL,\r
+ /* autostart */TRUE,\r
+ /* resource_int_p */NULL,\r
+ /* resource mask */0,\r
+ /* activation lim. */1,\r
+ /* App owner */0,\r
+ /* Accessing apps */1 \r
+ ),\r
+ GEN_BTASK(\r
+ /* */BlinkerTask,\r
+ /* name */"BlinkerTask",\r
+ /* priority */1,\r
+ /* schedule */FULL,\r
+ /* autostart */FALSE,\r
+ /* resource_int_p */NULL,\r
+ /* resource mask */0,\r
+ /* activation lim. */1,\r
+ /* App owner */APPLICATION_ID_OsApplication1,\r
+ /* Accessing apps */1\r
+ ), \r
+ GEN_BTASK(\r
+ /* */MainFunctionTask,\r
+ /* name */"MainFunctionTask",\r
+ /* priority */1,\r
+ /* schedule */FULL,\r
+ /* autostart */FALSE,\r
+ /* resource_int_p */NULL,\r
+ /* resource mask */0,\r
+ /* activation lim. */1,\r
+ /* App owner */APPLICATION_ID_OsApplication1,\r
+ /* Accessing apps */1\r
+ ), \r
+ GEN_BTASK(\r
+ /* */StartupTask,\r
+ /* name */"StartupTask",\r
+ /* priority */10,\r
+ /* schedule */FULL,\r
+ /* autostart */TRUE,\r
+ /* resource_int_p */NULL,\r
+ /* resource mask */0,\r
+ /* activation lim. */1,\r
+ /* App owner */APPLICATION_ID_OsApplication1,\r
+ /* Accessing apps */1\r
+ ), \r
+ GEN_ETASK(\r
+ /* */StepTask,\r
+ /* name */"StepTask",\r
+ /* priority */1,\r
+ /* schedule */FULL,\r
+ /* name */TRUE,\r
+ /* resource_int_p */NULL,\r
+ /* resource mask */0,\r
+ /* event mask */1,\r
+ /* App owner */APPLICATION_ID_OsApplication1,\r
+ /* Accessing apps */1\r
+ ), \r
+};\r
+\r
+// ################################## HOOKS #################################\r
+GEN_HOOKS( \r
+ StartupHook, \r
+ NULL, \r
+ ShutdownHook, \r
+ ErrorHook,\r
+ PreTaskHook, \r
+ PostTaskHook \r
+);\r
+\r
+// ################################## ISRS ##################################\r
+\r
+GEN_ISR_MAP = {\r
+ 0\r
+};\r
+\r
+// ############################ SCHEDULE TABLES #############################\r
+\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Os (Os_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.34\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((OS_SW_MAJOR_VERSION == 2) && (OS_SW_MINOR_VERSION == 0)) )
+#error Os: Configuration file expected BSW module version to be 2.0.*
+#endif
+
+\r
+\r
+#ifndef OS_CFG_H_\r
+#define OS_CFG_H_\r
+\r
+// Application Id's\r
+#define APPLICATION_ID_OsApplication1 0\r
+\r
+// Alarm Id's\r
+#define ALARM_ID_BlinkerAlarm 0\r
+#define ALARM_ID_MainFunctionAlarm 1\r
+#define ALARM_ID_StepAlarm 2\r
+\r
+// Counter Id's\r
+#define COUNTER_ID_Counter1 0\r
+\r
+// System counter\r
+#define OSMAXALLOWEDVALUE UINT_MAX// NOT CONFIGURABLE IN TOOLS\r
+#define OSTICKSPERBASE 1 // NOT CONFIGURABLE IN TOOLS\r
+#define OSMINCYCLE 1 // NOT CONFIGURABLE IN TOOLS\r
+#define OSTICKDURATION 1000000UL // Time between ticks in nano seconds\r
+\r
+// Counter macros\r
+#define OSMAXALLOWEDVALUE_Counter1 OSMAXALLOWEDVALUE\r
+#define OSTICKSPERBASE_Counter1 1 // NOT CONFIGURABLE IN TOOLS\r
+#define OSMINCYCLE_Counter1 1\r
+#define OS_TICKS2SEC_Counter1(_ticks) ( (OSTICKDURATION * _ticks)/1000000000UL )\r
+#define OS_TICKS2MS_Counter1(_ticks) ( (OSTICKDURATION * _ticks)/1000000UL )\r
+#define OS_TICKS2US_Counter1(_ticks) ( (OSTICKDURATION * _ticks)/1000UL )\r
+#define OS_TICKS2NS_Counter1(_ticks) (OSTICKDURATION * _ticks)\r
+\r
+\r
+\r
+// Event masks\r
+#define EVENT_MASK_StepEvent 1\r
+\r
+// Isr Id's\r
+\r
+// Resource Id's\r
+\r
+// Linked resource id's\r
+\r
+// Resource masks\r
+\r
+// Task Id's\r
+#define TASK_ID_OsIdle 0\r
+\r
+#define TASK_ID_BlinkerTask 1\r
+#define TASK_ID_MainFunctionTask 2\r
+#define TASK_ID_StartupTask 3\r
+#define TASK_ID_StepTask 4\r
+\r
+// Task entry points\r
+void OsIdle( void );\r
+void BlinkerTask( void );\r
+void MainFunctionTask( void );\r
+void StartupTask( void );\r
+void StepTask( void );\r
+\r
+// Schedule table id's\r
+\r
+// Stack size\r
+#define OS_INTERRUPT_STACK_SIZE 2048\r
+#define OS_OSIDLE_STACK_SIZE 512\r
+\r
+#define OS_ALARM_CNT 3 \r
+#define OS_TASK_CNT 5\r
+#define OS_SCHTBL_CNT 0\r
+#define OS_COUNTER_CNT 1\r
+#define OS_EVENTS_CNT 1\r
+//#define OS_ISRS_CNT 0\r
+#define OS_RESOURCE_CNT 0\r
+#define OS_LINKED_RESOURCE_CNT 0\r
+#define OS_APPLICATION_CNT 1\r
+#define OS_SERVICE_CNT 0 /* ARCTICSTUDIO_GENERATOR_TODO */\r
+#define CFG_OS_DEBUG STD_OFF\r
+\r
+#define OS_SC1 STD_ON /* NOT CONFIGURABLE IN TOOLS */\r
+#define OS_USE_APPLICATIONS STD_ON\r
+#define OS_USE_MEMORY_PROT STD_OFF /* NOT CONFIGURABLE IN TOOLS */\r
+#define OS_USE_TASK_TIMING_PROT STD_OFF /* NOT CONFIGURABLE IN TOOLS */\r
+#define OS_USE_ISR_TIMING_PROT STD_OFF /* NOT CONFIGURABLE IN TOOLS */\r
+//#define OS_SC3 STD_ON /* NOT CONFIGURABLE IN TOOLS */ \r
+#define OS_STACK_MONITORING STD_ON\r
+#define OS_STATUS_EXTENDED STD_ON\r
+#define OS_USE_GET_SERVICE_ID STD_ON /* NOT CONFIGURABLE IN TOOLS */\r
+#define OS_USE_PARAMETER_ACCESS STD_ON /* NOT CONFIGURABLE IN TOOLS */\r
+#define OS_RES_SCHEDULER STD_ON /* NOT CONFIGURABLE IN TOOLS */\r
+\r
+#define OS_ISR_CNT 0\r
+#define OS_ISR2_CNT 0\r
+#define OS_ISR1_CNT 0\r
+\r
+#define OS_ISR_MAX_CNT 10\r
+\r
+#define OS_NUM_CORES 1\r
+\r
+\r
+#endif /*OS_CFG_H_*/\r
--- /dev/null
+/*\r
+* Configuration of module: PduR (PduR_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 3.1.10\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((PDUR_SW_MAJOR_VERSION == 2) && (PDUR_SW_MINOR_VERSION == 0)) )
+#error PduR: Configuration file expected BSW module version to be 2.0.*
+#endif
+
+\r
+\r
+#ifndef PDUR_CFG_H_\r
+#define PDUR_CFG_H_\r
+\r
+// Module support\r
+#define PDUR_CANIF_SUPPORT STD_ON\r
+#define PDUR_CANTP_SUPPORT STD_OFF\r
+#define PDUR_FRIF_SUPPORT STD_OFF /* Not supported */\r
+#define PDUR_FRTP_SUPPORT STD_OFF /* Not supported */\r
+#define PDUR_LINIF_SUPPORT STD_OFF\r
+#define PDUR_LINTP_SUPPORT STD_OFF /* Not supported */\r
+#define PDUR_COM_SUPPORT STD_ON\r
+#define PDUR_DCM_SUPPORT STD_OFF\r
+#define PDUR_IPDUM_SUPPORT STD_OFF /* Not supported */\r
+#define PDUR_J1939TP_SUPPORT STD_OFF\r
+\r
+#define PDUR_DEV_ERROR_DETECT STD_OFF\r
+#define PDUR_VERSION_INFO_API STD_OFF\r
+\r
+\r
+// Zero cost operation mode\r
+#define PDUR_ZERO_COST_OPERATION STD_OFF\r
+#define PDUR_SINGLE_IF NULL\r
+#define PDUR_SINGLE_TP NULL\r
+\r
+// Gateway operation\r
+#define PDUR_GATEWAY_OPERATION STD_ON\r
+#define PDUR_MEMORY_SIZE 10 /* Not used */\r
+#define PDUR_SB_TX_BUFFER_SUPPORT STD_ON\r
+#define PDUR_FIFO_TX_BUFFER_SUPPORT STD_OFF\r
+\r
+/**\r
+ * The maximum numbers of Tx buffers.\r
+ */\r
+#define PDUR_MAX_TX_BUFFER_NUMBER 10 /* Not used */\r
+\r
+\r
+// Multicast\r
+#define PDUR_MULTICAST_TOIF_SUPPORT STD_ON\r
+#define PDUR_MULTICAST_FROMIF_SUPPORT STD_ON\r
+#define PDUR_MULTICAST_TOTP_SUPPORT STD_ON\r
+#define PDUR_MULTICAST_FROMTP_SUPPORT STD_ON\r
+\r
+// Minimum routing\r
+/* Minimum routing not supported.\r
+#define PDUR_MINIMUM_ROUTING_UP_MODULE COM\r
+#define PDUR_MINIMUM_ROUTING_LO_MODULE CAN_IF\r
+#define PDUR_MINIMUM_ROUTING_UP_RXPDUID ((PduIdType)100)\r
+#define PDUR_MINIMUM_ROUTING_LO_RXPDUID ((PduIdType)255)\r
+#define PDUR_MINIMUM_ROUTING_UP_TXPDUID ((PduIdType)255)\r
+#define PDUR_MINIMUM_ROUTING_LO_TXPDUID ((PduIdType)255)\r
+*/\r
+\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: PduR (PduR_PbCfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 3.1.10\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+\r
+#include "PduR.h"\r
+\r
+\r
+#if PDUR_CANIF_SUPPORT == STD_ON\r
+#include "CanIf.h"\r
+#endif\r
+#if PDUR_CANTP_SUPPORT == STD_ON\r
+#include "CanTp.h"\r
+#endif\r
+#if PDUR_LINIF_SUPPORT == STD_ON\r
+#include "LinIf.h"\r
+#endif\r
+#if PDUR_COM_SUPPORT == STD_ON\r
+#include "Com.h"\r
+#endif\r
+#if PDUR_DCM_SUPPORT == STD_ON\r
+#include "Dcm.h"\r
+#endif\r
+#if PDUR_J1939TP_SUPPORT == STD_ON\r
+#include "J1939Tp.h"\r
+#endif\r
+\r
+\r
+\r
+PduRTpBufferInfo_type PduRTpBuffers[] = {\r
+ {\r
+ .pduInfoPtr = NULL,\r
+ .status = PDUR_BUFFER_FREE,\r
+ .bufferSize = 0\r
+ }\r
+};\r
+\r
+PduRTpBufferInfo_type *PduRTpRouteBufferPtrs[] = {\r
+ NULL\r
+};\r
+\r
+\r
+ \r
+const PduRDestPdu_type PduRDestination_FreqInd_PduRDestination = {\r
+ .DestModule = ARC_PDUR_CANIF,\r
+ .DestPduId = CANIF_PDU_ID_TX_PDU,\r
+ .DataProvision = PDUR_NO_PROVISION,\r
+ .TxBufferRef = NULL\r
+}; \r
+const PduRDestPdu_type PduRDestination_FreqReq_PduRDestination = {\r
+ .DestModule = ARC_PDUR_COM,\r
+ .DestPduId = COM_PDU_ID_FreqReq,\r
+ .DataProvision = PDUR_NO_PROVISION,\r
+ .TxBufferRef = NULL\r
+}; \r
+const PduRDestPdu_type PduRDestination_RX_PDU_PduRDestination = {\r
+ .DestModule = ARC_PDUR_COM,\r
+ .DestPduId = COM_PDU_ID_RX_PDU,\r
+ .DataProvision = PDUR_NO_PROVISION,\r
+ .TxBufferRef = NULL\r
+}; \r
+const PduRDestPdu_type PduRDestination_TX_PDU_PduRDestination = {\r
+ .DestModule = ARC_PDUR_CANIF,\r
+ .DestPduId = CANIF_PDU_ID_FreqInd,\r
+ .DataProvision = PDUR_NO_PROVISION,\r
+ .TxBufferRef = NULL\r
+}; \r
+\r
+const PduRDestPdu_type * const PduRDestinations_FreqInd[] = { \r
+ &PduRDestination_FreqInd_PduRDestination,\r
+ NULL\r
+};\r
+const PduRDestPdu_type * const PduRDestinations_FreqReq[] = { \r
+ &PduRDestination_FreqReq_PduRDestination,\r
+ NULL\r
+};\r
+const PduRDestPdu_type * const PduRDestinations_RX_PDU[] = { \r
+ &PduRDestination_RX_PDU_PduRDestination,\r
+ NULL\r
+};\r
+const PduRDestPdu_type * const PduRDestinations_TX_PDU[] = { \r
+ &PduRDestination_TX_PDU_PduRDestination,\r
+ NULL\r
+};\r
+\r
+\r
+const PduRRoutingPath_type PduRRoutingPath_FreqInd = { \r
+ .SrcModule = ARC_PDUR_COM,\r
+ .SrcPduId = COM_PDU_ID_TX_PDU,\r
+ .SduLength = 0,\r
+ .PduRDestPdus = PduRDestinations_FreqInd\r
+}; \r
+const PduRRoutingPath_type PduRRoutingPath_FreqReq = { \r
+ .SrcModule = ARC_PDUR_CANIF,\r
+ .SrcPduId = CANIF_PDU_ID_FreqReq,\r
+ .SduLength = 0,\r
+ .PduRDestPdus = PduRDestinations_FreqReq\r
+}; \r
+const PduRRoutingPath_type PduRRoutingPath_RX_PDU = { \r
+ .SrcModule = ARC_PDUR_CANIF,\r
+ .SrcPduId = CANIF_PDU_ID_RX_PDU,\r
+ .SduLength = 0,\r
+ .PduRDestPdus = PduRDestinations_RX_PDU\r
+}; \r
+const PduRRoutingPath_type PduRRoutingPath_TX_PDU = { \r
+ .SrcModule = ARC_PDUR_COM,\r
+ .SrcPduId = COM_PDU_ID_FreqInd,\r
+ .SduLength = 0,\r
+ .PduRDestPdus = PduRDestinations_TX_PDU\r
+}; \r
+\r
+\r
+const PduRRoutingPath_type * const PduRRoutingPaths[] = { \r
+ &PduRRoutingPath_FreqInd,\r
+ &PduRRoutingPath_FreqReq,\r
+ &PduRRoutingPath_RX_PDU,\r
+ &PduRRoutingPath_TX_PDU,\r
+ NULL\r
+};\r
+\r
+\r
+PduR_PBConfigType PduR_Config = {\r
+ .PduRConfigurationId = 0,\r
+ .RoutingPaths = PduRRoutingPaths,\r
+ .TpBuffers = PduRTpBuffers,\r
+ .TpRouteBuffers = PduRTpRouteBufferPtrs,\r
+ .NRoutingPaths = 4\r
+};\r
--- /dev/null
+/*\r
+* Configuration of module: PduR (PduR_PbCfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 3.1.10\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((PDUR_SW_MAJOR_VERSION == 2) && (PDUR_SW_MINOR_VERSION == 0)) )
+#error PduR: Configuration file expected BSW module version to be 2.0.*
+#endif
+
+\r
+#if defined(USE_DCM)\r
+#include "Dcm.h"\r
+#endif\r
+#if defined(USE_COM)\r
+#include "Com.h"\r
+#endif\r
+#if defined(USE_CANIF)\r
+#include "CanIf.h"\r
+#endif\r
+#if defined(USE_CANTP)\r
+#include "CanTp.h"\r
+#endif\r
+\r
+extern PduR_PBConfigType PduR_Config;\r
+\r
+// PduR Polite Defines.\r
+#define PDUR_PDU_ID_TX_PDU 0\r
+#define PDUR_REVERSE_PDU_ID_TX_PDU 0\r
+#define PDUR_PDU_ID_FreqReq 1\r
+#define PDUR_REVERSE_PDU_ID_FreqReq 1\r
+#define PDUR_PDU_ID_RX_PDU 2\r
+#define PDUR_REVERSE_PDU_ID_RX_PDU 2\r
+#define PDUR_PDU_ID_FreqInd 3\r
+#define PDUR_REVERSE_PDU_ID_FreqInd 3\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Port (Port_Cfg.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+ \r
+\r
+#include "Port.h"\r
+#include "Port_Cfg.h"\r
+#include <stdlib.h>\r
+\r
+const uint16_t PortPadConfigData[] = {\r
+ ( PORT_FUNC0 | PORT_OBE_ENABLE | PORT_SLEW_RATE_MIN | PORT_PULL_NONE ), /* PCR 0 : PORT_PIN_MODE_DIO */\r
+ PORT_PCR_RESET, /* PCR 1 */\r
+ PORT_PCR_RESET, /* PCR 2 */\r
+ PORT_PCR_RESET, /* PCR 3 */\r
+ PORT_PCR_RESET, /* PCR 4 */\r
+ PORT_PCR_RESET, /* PCR 5 */\r
+ PORT_PCR_RESET, /* PCR 6 */\r
+ PORT_PCR_RESET, /* PCR 7 */\r
+ PORT_PCR_RESET, /* PCR 8 */\r
+ PORT_PCR_RESET, /* PCR 9 */\r
+ PORT_PCR_RESET, /* PCR 10 */\r
+ PORT_PCR_RESET, /* PCR 11 */\r
+ PORT_PCR_RESET, /* PCR 12 */\r
+ PORT_PCR_RESET, /* PCR 13 */\r
+ PORT_PCR_RESET, /* PCR 14 */\r
+ PORT_PCR_RESET, /* PCR 15 */\r
+ PORT_PCR_RESET, /* PCR 16 */\r
+ PORT_PCR_RESET, /* PCR 17 */\r
+ PORT_PCR_RESET, /* PCR 18 */\r
+ PORT_PCR_RESET, /* PCR 19 */\r
+ PORT_PCR_RESET, /* PCR 20 */\r
+ PORT_PCR_RESET, /* PCR 21 */\r
+ PORT_PCR_RESET, /* PCR 22 */\r
+ PORT_PCR_RESET, /* PCR 23 */\r
+ PORT_PCR_RESET, /* PCR 24 */\r
+ PORT_PCR_RESET, /* PCR 25 */\r
+ PORT_PCR_RESET, /* PCR 26 */\r
+ PORT_PCR_RESET, /* PCR 27 */\r
+ PORT_PCR_RESET, /* PCR 28 */\r
+ PORT_PCR_RESET, /* PCR 29 */\r
+ PORT_PCR_RESET, /* PCR 30 */\r
+ PORT_PCR_RESET, /* PCR 31 */\r
+ PORT_PCR_RESET, /* PCR 32 */\r
+ PORT_PCR_RESET, /* PCR 33 */\r
+ PORT_PCR_RESET, /* PCR 34 */\r
+ PORT_PCR_RESET, /* PCR 35 */\r
+ PORT_PCR_RESET, /* PCR 36 */\r
+ PORT_PCR_RESET, /* PCR 37 */\r
+ PORT_PCR_RESET, /* PCR 38 */\r
+ PORT_PCR_RESET, /* PCR 39 */\r
+ PORT_PCR_RESET, /* PCR 40 */\r
+ PORT_PCR_RESET, /* PCR 41 */\r
+ PORT_PCR_RESET, /* PCR 42 */\r
+ PORT_PCR_RESET, /* PCR 43 */\r
+ PORT_PCR_RESET, /* PCR 44 */\r
+ PORT_PCR_RESET, /* PCR 45 */\r
+ PORT_PCR_RESET, /* PCR 46 */\r
+ PORT_PCR_RESET, /* PCR 47 */\r
+ PORT_PCR_RESET, /* PCR 48 */\r
+ PORT_PCR_RESET, /* PCR 49 */\r
+ PORT_PCR_RESET, /* PCR 50 */\r
+ PORT_PCR_RESET, /* PCR 51 */\r
+ PORT_PCR_RESET, /* PCR 52 */\r
+ PORT_PCR_RESET, /* PCR 53 */\r
+ PORT_PCR_RESET, /* PCR 54 */\r
+ PORT_PCR_RESET, /* PCR 55 */\r
+ PORT_PCR_RESET, /* PCR 56 */\r
+ PORT_PCR_RESET, /* PCR 57 */\r
+ PORT_PCR_RESET, /* PCR 58 */\r
+ PORT_PCR_RESET, /* PCR 59 */\r
+ PORT_PCR_RESET, /* PCR 60 */\r
+ PORT_PCR_RESET, /* PCR 61 */\r
+ PORT_PCR_RESET, /* PCR 62 */\r
+ PORT_PCR_RESET, /* PCR 63 */\r
+ PORT_PCR_RESET, /* PCR 64 */\r
+ PORT_PCR_RESET, /* PCR 65 */\r
+ PORT_PCR_RESET, /* PCR 66 */\r
+ PORT_PCR_RESET, /* PCR 67 */\r
+ PORT_PCR_RESET, /* PCR 68 */\r
+ PORT_PCR_RESET, /* PCR 69 */\r
+ PORT_PCR_RESET, /* PCR 70 */\r
+ PORT_PCR_RESET, /* PCR 71 */\r
+ PORT_PCR_RESET, /* PCR 72 */\r
+ PORT_PCR_RESET, /* PCR 73 */\r
+ PORT_PCR_RESET, /* PCR 74 */\r
+ PORT_PCR_RESET, /* PCR 75 */\r
+ PORT_PCR_RESET, /* PCR 76 */\r
+ PORT_PCR_RESET, /* PCR 77 */\r
+ PORT_PCR_RESET, /* PCR 78 */\r
+ PORT_PCR_RESET, /* PCR 79 */\r
+ PORT_PCR_RESET, /* PCR 80 */\r
+ PORT_PCR_RESET, /* PCR 81 */\r
+ PORT_PCR_RESET, /* PCR 82 */\r
+ ( PORT_FUNC1 | PORT_OBE_ENABLE | PORT_SLEW_RATE_MIN | PORT_PULL_NONE ), /* PCR 83 : PORT_PIN_MODE_CAN */\r
+ ( PORT_FUNC1 | PORT_IBE_ENABLE | PORT_SLEW_RATE_MIN | PORT_PULL_NONE ), /* PCR 84 : PORT_PIN_MODE_CAN */\r
+ PORT_PCR_RESET, /* PCR 85 */\r
+ PORT_PCR_RESET, /* PCR 86 */\r
+ PORT_PCR_RESET, /* PCR 87 */\r
+ PORT_PCR_RESET, /* PCR 88 */\r
+ PORT_PCR_RESET, /* PCR 89 */\r
+ PORT_PCR_RESET, /* PCR 90 */\r
+ PORT_PCR_RESET, /* PCR 91 */\r
+ PORT_PCR_RESET, /* PCR 92 */\r
+ PORT_PCR_RESET, /* PCR 93 */\r
+ PORT_PCR_RESET, /* PCR 94 */\r
+ PORT_PCR_RESET, /* PCR 95 */\r
+ PORT_PCR_RESET, /* PCR 96 */\r
+ PORT_PCR_RESET, /* PCR 97 */\r
+ PORT_PCR_RESET, /* PCR 98 */\r
+ PORT_PCR_RESET, /* PCR 99 */\r
+ PORT_PCR_RESET, /* PCR 100 */\r
+ PORT_PCR_RESET, /* PCR 101 */\r
+ PORT_PCR_RESET, /* PCR 102 */\r
+ PORT_PCR_RESET, /* PCR 103 */\r
+ PORT_PCR_RESET, /* PCR 104 */\r
+ PORT_PCR_RESET, /* PCR 105 */\r
+ PORT_PCR_RESET, /* PCR 106 */\r
+ PORT_PCR_RESET, /* PCR 107 */\r
+ PORT_PCR_RESET, /* PCR 108 */\r
+ PORT_PCR_RESET, /* PCR 109 */\r
+ PORT_PCR_RESET, /* PCR 110 */\r
+ PORT_PCR_RESET, /* PCR 111 */\r
+ PORT_PCR_RESET, /* PCR 112 */\r
+ PORT_PCR_RESET, /* PCR 113 */\r
+ PORT_PCR_RESET, /* PCR 114 */\r
+ PORT_PCR_RESET, /* PCR 115 */\r
+ PORT_PCR_RESET, /* PCR 116 */\r
+ PORT_PCR_RESET, /* PCR 117 */\r
+ PORT_PCR_RESET, /* PCR 118 */\r
+ PORT_PCR_RESET, /* PCR 119 */\r
+ PORT_PCR_RESET, /* PCR 120 */\r
+ PORT_PCR_RESET, /* PCR 121 */\r
+ PORT_PCR_RESET, /* PCR 122 */\r
+ PORT_PCR_RESET, /* PCR 123 */\r
+ PORT_PCR_RESET, /* PCR 124 */\r
+ PORT_PCR_RESET, /* PCR 125 */\r
+ PORT_PCR_RESET, /* PCR 126 */\r
+ PORT_PCR_RESET, /* PCR 127 */\r
+ PORT_PCR_RESET, /* PCR 128 */\r
+ PORT_PCR_RESET, /* PCR 129 */\r
+ PORT_PCR_RESET, /* PCR 130 */\r
+ PORT_PCR_RESET, /* PCR 131 */\r
+ PORT_PCR_RESET, /* PCR 132 */\r
+ PORT_PCR_RESET, /* PCR 133 */\r
+ PORT_PCR_RESET, /* PCR 134 */\r
+ PORT_PCR_RESET, /* PCR 135 */\r
+ PORT_PCR_RESET, /* PCR 136 */\r
+ PORT_PCR_RESET, /* PCR 137 */\r
+ PORT_PCR_RESET, /* PCR 138 */\r
+ PORT_PCR_RESET, /* PCR 139 */\r
+ PORT_PCR_RESET, /* PCR 140 */\r
+ PORT_PCR_RESET, /* PCR 141 */\r
+ PORT_PCR_RESET, /* PCR 142 */\r
+ PORT_PCR_RESET, /* PCR 143 */\r
+ PORT_PCR_RESET, /* PCR 144 */\r
+ PORT_PCR_RESET, /* PCR 145 */\r
+ PORT_PCR_RESET, /* PCR 146 */\r
+ PORT_PCR_RESET, /* PCR 147 */\r
+ PORT_PCR_RESET, /* PCR 148 */\r
+ PORT_PCR_RESET, /* PCR 149 */\r
+ PORT_PCR_RESET, /* PCR 150 */\r
+ PORT_PCR_RESET, /* PCR 151 */\r
+ PORT_PCR_RESET, /* PCR 152 */\r
+ PORT_PCR_RESET, /* PCR 153 */\r
+ PORT_PCR_RESET, /* PCR 154 */\r
+ PORT_PCR_RESET, /* PCR 155 */\r
+ PORT_PCR_RESET, /* PCR 156 */\r
+ PORT_PCR_RESET, /* PCR 157 */\r
+ PORT_PCR_RESET, /* PCR 158 */\r
+ PORT_PCR_RESET, /* PCR 159 */\r
+ PORT_PCR_RESET, /* PCR 160 */\r
+ PORT_PCR_RESET, /* PCR 161 */\r
+ PORT_PCR_RESET, /* PCR 162 */\r
+ PORT_PCR_RESET, /* PCR 163 */\r
+ PORT_PCR_RESET, /* PCR 164 */\r
+ PORT_PCR_RESET, /* PCR 165 */\r
+ PORT_PCR_RESET, /* PCR 166 */\r
+ PORT_PCR_RESET, /* PCR 167 */\r
+ PORT_PCR_RESET, /* PCR 168 */\r
+ PORT_PCR_RESET, /* PCR 169 */\r
+ PORT_PCR_RESET, /* PCR 170 */\r
+ PORT_PCR_RESET, /* PCR 171 */\r
+ PORT_PCR_RESET, /* PCR 172 */\r
+ PORT_PCR_RESET, /* PCR 173 */\r
+ PORT_PCR_RESET, /* PCR 174 */\r
+ PORT_PCR_RESET, /* PCR 175 */\r
+ PORT_PCR_RESET, /* PCR 176 */\r
+ PORT_PCR_RESET, /* PCR 177 */\r
+ PORT_PCR_RESET, /* PCR 178 */\r
+ PORT_PCR_RESET, /* PCR 179 */\r
+ PORT_PCR_RESET, /* PCR 180 */\r
+ PORT_PCR_RESET, /* PCR 181 */\r
+ PORT_PCR_RESET, /* PCR 182 */\r
+ PORT_PCR_RESET, /* PCR 183 */\r
+ PORT_PCR_RESET, /* PCR 184 */\r
+ PORT_PCR_RESET, /* PCR 185 */\r
+ PORT_PCR_RESET, /* PCR 186 */\r
+ PORT_PCR_RESET, /* PCR 187 */\r
+ PORT_PCR_RESET, /* PCR 188 */\r
+ PORT_PCR_RESET, /* PCR 189 */\r
+ PORT_PCR_RESET, /* PCR 190 */\r
+ PORT_PCR_RESET, /* PCR 191 */\r
+ PORT_PCR_RESET, /* PCR 192 */\r
+ PORT_PCR_RESET, /* PCR 193 */\r
+ PORT_PCR_RESET, /* PCR 194 */\r
+ PORT_PCR_RESET, /* PCR 195 */\r
+ PORT_PCR_RESET, /* PCR 196 */\r
+ PORT_PCR_RESET, /* PCR 197 */\r
+ PORT_PCR_RESET, /* PCR 198 */\r
+ PORT_PCR_RESET, /* PCR 199 */\r
+ PORT_PCR_RESET, /* PCR 200 */\r
+ PORT_PCR_RESET, /* PCR 201 */\r
+ PORT_PCR_RESET, /* PCR 202 */\r
+ PORT_PCR_RESET, /* PCR 203 */\r
+ PORT_PCR_RESET, /* PCR 204 */\r
+ PORT_PCR_RESET, /* PCR 205 */\r
+ PORT_PCR_RESET, /* PCR 206 */\r
+ PORT_PCR_RESET, /* PCR 207 */\r
+ PORT_PCR_RESET, /* PCR 208 */\r
+ PORT_PCR_RESET, /* PCR 209 */\r
+ PORT_PCR_RESET, /* PCR 210 */\r
+ PORT_PCR_RESET, /* PCR 211 */\r
+ PORT_PCR_RESET, /* PCR 212 */\r
+ PORT_PCR_RESET, /* PCR 213 */\r
+ PORT_PCR_RESET, /* PCR 214 */\r
+ PORT_PCR_RESET, /* PCR 215 */\r
+ PORT_PCR_RESET, /* PCR 216 */\r
+ PORT_PCR_RESET, /* PCR 217 */\r
+ PORT_PCR_RESET, /* PCR 218 */\r
+ PORT_PCR_RESET, /* PCR 219 */\r
+ PORT_PCR_RESET, /* PCR 220 */\r
+ PORT_PCR_RESET, /* PCR 221 */\r
+ PORT_PCR_RESET, /* PCR 222 */\r
+ PORT_PCR_RESET, /* PCR 223 */\r
+ PORT_PCR_RESET, /* PCR 224 */\r
+ PORT_PCR_RESET, /* PCR 225 */\r
+ PORT_PCR_RESET, /* PCR 226 */\r
+ PORT_PCR_RESET, /* PCR 227 */\r
+ PORT_PCR_RESET, /* PCR 228 */\r
+ PORT_PCR_RESET, /* PCR 229 */\r
+ PORT_PCR_RESET, /* PCR 230 */\r
+ PORT_PCR_RESET, /* PCR 231 */\r
+ PORT_PCR_RESET, /* PCR 232 */\r
+ PORT_PCR_RESET, /* PCR 233 */\r
+ PORT_PCR_RESET, /* PCR 234 */\r
+ PORT_PCR_RESET, /* PCR 235 */\r
+ PORT_PCR_RESET, /* PCR 236 */\r
+ PORT_PCR_RESET, /* PCR 237 */\r
+ PORT_PCR_RESET, /* PCR 238 */\r
+ PORT_PCR_RESET, /* PCR 239 */\r
+ PORT_PCR_RESET, /* PCR 240 */\r
+ PORT_PCR_RESET, /* PCR 241 */\r
+ PORT_PCR_RESET, /* PCR 242 */\r
+ PORT_PCR_RESET, /* PCR 243 */\r
+ PORT_PCR_RESET, /* PCR 244 */\r
+ PORT_PCR_RESET, /* PCR 245 */\r
+ PORT_PCR_RESET, /* PCR 246 */\r
+ PORT_PCR_RESET, /* PCR 247 */\r
+ PORT_PCR_RESET, /* PCR 248 */\r
+ PORT_PCR_RESET, /* PCR 249 */\r
+ PORT_PCR_RESET, /* PCR 250 */\r
+ PORT_PCR_RESET, /* PCR 251 */\r
+ PORT_PCR_RESET, /* PCR 252 */\r
+ PORT_PCR_RESET, /* PCR 253 */\r
+ PORT_PCR_RESET, /* PCR 254 */\r
+ PORT_PCR_RESET, /* PCR 255 */\r
+ PORT_PCR_RESET, /* PCR 256 */\r
+ PORT_PCR_RESET, /* PCR 257 */\r
+ PORT_PCR_RESET, /* PCR 258 */\r
+ PORT_PCR_RESET, /* PCR 259 */\r
+ PORT_PCR_RESET, /* PCR 260 */\r
+ PORT_PCR_RESET, /* PCR 261 */\r
+ PORT_PCR_RESET, /* PCR 262 */\r
+ PORT_PCR_RESET, /* PCR 263 */\r
+ PORT_PCR_RESET, /* PCR 264 */\r
+ PORT_PCR_RESET, /* PCR 265 */\r
+ PORT_PCR_RESET, /* PCR 266 */\r
+ PORT_PCR_RESET, /* PCR 267 */\r
+ PORT_PCR_RESET, /* PCR 268 */\r
+ PORT_PCR_RESET, /* PCR 269 */\r
+ PORT_PCR_RESET, /* PCR 270 */\r
+ PORT_PCR_RESET, /* PCR 271 */\r
+ PORT_PCR_RESET, /* PCR 272 */\r
+ PORT_PCR_RESET, /* PCR 273 */\r
+ PORT_PCR_RESET, /* PCR 274 */\r
+ PORT_PCR_RESET, /* PCR 275 */\r
+ PORT_PCR_RESET, /* PCR 276 */\r
+ PORT_PCR_RESET, /* PCR 277 */\r
+ PORT_PCR_RESET, /* PCR 278 */\r
+ PORT_PCR_RESET, /* PCR 279 */\r
+ PORT_PCR_RESET, /* PCR 280 */\r
+ PORT_PCR_RESET, /* PCR 281 */\r
+ PORT_PCR_RESET, /* PCR 282 */\r
+ PORT_PCR_RESET, /* PCR 283 */\r
+ PORT_PCR_RESET, /* PCR 284 */\r
+ PORT_PCR_RESET, /* PCR 285 */\r
+ PORT_PCR_RESET, /* PCR 286 */\r
+ PORT_PCR_RESET, /* PCR 287 */\r
+ PORT_PCR_RESET, /* PCR 288 */\r
+ PORT_PCR_RESET, /* PCR 289 */\r
+ PORT_PCR_RESET, /* PCR 290 */\r
+ PORT_PCR_RESET, /* PCR 291 */\r
+ PORT_PCR_RESET, /* PCR 292 */\r
+ PORT_PCR_RESET, /* PCR 293 */\r
+ PORT_PCR_RESET, /* PCR 294 */\r
+ PORT_PCR_RESET, /* PCR 295 */\r
+ PORT_PCR_RESET, /* PCR 296 */\r
+ PORT_PCR_RESET, /* PCR 297 */\r
+ PORT_PCR_RESET, /* PCR 298 */\r
+};\r
+\r
+const uint8_t PortOutConfigData[] = {\r
+ PORT_GPDO_RESET, /* GPDO 0 */\r
+ PORT_GPDO_RESET, /* GPDO 1 */\r
+ PORT_GPDO_RESET, /* GPDO 2 */\r
+ PORT_GPDO_RESET, /* GPDO 3 */\r
+ PORT_GPDO_RESET, /* GPDO 4 */\r
+ PORT_GPDO_RESET, /* GPDO 5 */\r
+ PORT_GPDO_RESET, /* GPDO 6 */\r
+ PORT_GPDO_RESET, /* GPDO 7 */\r
+ PORT_GPDO_RESET, /* GPDO 8 */\r
+ PORT_GPDO_RESET, /* GPDO 9 */\r
+ PORT_GPDO_RESET, /* GPDO 10 */\r
+ PORT_GPDO_RESET, /* GPDO 11 */\r
+ PORT_GPDO_RESET, /* GPDO 12 */\r
+ PORT_GPDO_RESET, /* GPDO 13 */\r
+ PORT_GPDO_RESET, /* GPDO 14 */\r
+ PORT_GPDO_RESET, /* GPDO 15 */\r
+ PORT_GPDO_RESET, /* GPDO 16 */\r
+ PORT_GPDO_RESET, /* GPDO 17 */\r
+ PORT_GPDO_RESET, /* GPDO 18 */\r
+ PORT_GPDO_RESET, /* GPDO 19 */\r
+ PORT_GPDO_RESET, /* GPDO 20 */\r
+ PORT_GPDO_RESET, /* GPDO 21 */\r
+ PORT_GPDO_RESET, /* GPDO 22 */\r
+ PORT_GPDO_RESET, /* GPDO 23 */\r
+ PORT_GPDO_RESET, /* GPDO 24 */\r
+ PORT_GPDO_RESET, /* GPDO 25 */\r
+ PORT_GPDO_RESET, /* GPDO 26 */\r
+ PORT_GPDO_RESET, /* GPDO 27 */\r
+ PORT_GPDO_RESET, /* GPDO 28 */\r
+ PORT_GPDO_RESET, /* GPDO 29 */\r
+ PORT_GPDO_RESET, /* GPDO 30 */\r
+ PORT_GPDO_RESET, /* GPDO 31 */\r
+ PORT_GPDO_RESET, /* GPDO 32 */\r
+ PORT_GPDO_RESET, /* GPDO 33 */\r
+ PORT_GPDO_RESET, /* GPDO 34 */\r
+ PORT_GPDO_RESET, /* GPDO 35 */\r
+ PORT_GPDO_RESET, /* GPDO 36 */\r
+ PORT_GPDO_RESET, /* GPDO 37 */\r
+ PORT_GPDO_RESET, /* GPDO 38 */\r
+ PORT_GPDO_RESET, /* GPDO 39 */\r
+ PORT_GPDO_RESET, /* GPDO 40 */\r
+ PORT_GPDO_RESET, /* GPDO 41 */\r
+ PORT_GPDO_RESET, /* GPDO 42 */\r
+ PORT_GPDO_RESET, /* GPDO 43 */\r
+ PORT_GPDO_RESET, /* GPDO 44 */\r
+ PORT_GPDO_RESET, /* GPDO 45 */\r
+ PORT_GPDO_RESET, /* GPDO 46 */\r
+ PORT_GPDO_RESET, /* GPDO 47 */\r
+ PORT_GPDO_RESET, /* GPDO 48 */\r
+ PORT_GPDO_RESET, /* GPDO 49 */\r
+ PORT_GPDO_RESET, /* GPDO 50 */\r
+ PORT_GPDO_RESET, /* GPDO 51 */\r
+ PORT_GPDO_RESET, /* GPDO 52 */\r
+ PORT_GPDO_RESET, /* GPDO 53 */\r
+ PORT_GPDO_RESET, /* GPDO 54 */\r
+ PORT_GPDO_RESET, /* GPDO 55 */\r
+ PORT_GPDO_RESET, /* GPDO 56 */\r
+ PORT_GPDO_RESET, /* GPDO 57 */\r
+ PORT_GPDO_RESET, /* GPDO 58 */\r
+ PORT_GPDO_RESET, /* GPDO 59 */\r
+ PORT_GPDO_RESET, /* GPDO 60 */\r
+ PORT_GPDO_RESET, /* GPDO 61 */\r
+ PORT_GPDO_RESET, /* GPDO 62 */\r
+ PORT_GPDO_RESET, /* GPDO 63 */\r
+ PORT_GPDO_RESET, /* GPDO 64 */\r
+ PORT_GPDO_RESET, /* GPDO 65 */\r
+ PORT_GPDO_RESET, /* GPDO 66 */\r
+ PORT_GPDO_RESET, /* GPDO 67 */\r
+ PORT_GPDO_RESET, /* GPDO 68 */\r
+ PORT_GPDO_RESET, /* GPDO 69 */\r
+ PORT_GPDO_RESET, /* GPDO 70 */\r
+ PORT_GPDO_RESET, /* GPDO 71 */\r
+ PORT_GPDO_RESET, /* GPDO 72 */\r
+ PORT_GPDO_RESET, /* GPDO 73 */\r
+ PORT_GPDO_RESET, /* GPDO 74 */\r
+ PORT_GPDO_RESET, /* GPDO 75 */\r
+ PORT_GPDO_RESET, /* GPDO 76 */\r
+ PORT_GPDO_RESET, /* GPDO 77 */\r
+ PORT_GPDO_RESET, /* GPDO 78 */\r
+ PORT_GPDO_RESET, /* GPDO 79 */\r
+ PORT_GPDO_RESET, /* GPDO 80 */\r
+ PORT_GPDO_RESET, /* GPDO 81 */\r
+ PORT_GPDO_RESET, /* GPDO 82 */\r
+ PORT_GPDO_RESET, /* GPDO 83 */\r
+ PORT_GPDO_RESET, /* GPDO 84 */\r
+ PORT_GPDO_RESET, /* GPDO 85 */\r
+ PORT_GPDO_RESET, /* GPDO 86 */\r
+ PORT_GPDO_RESET, /* GPDO 87 */\r
+ PORT_GPDO_RESET, /* GPDO 88 */\r
+ PORT_GPDO_RESET, /* GPDO 89 */\r
+ PORT_GPDO_RESET, /* GPDO 90 */\r
+ PORT_GPDO_RESET, /* GPDO 91 */\r
+ PORT_GPDO_RESET, /* GPDO 92 */\r
+ PORT_GPDO_RESET, /* GPDO 93 */\r
+ PORT_GPDO_RESET, /* GPDO 94 */\r
+ PORT_GPDO_RESET, /* GPDO 95 */\r
+ PORT_GPDO_RESET, /* GPDO 96 */\r
+ PORT_GPDO_RESET, /* GPDO 97 */\r
+ PORT_GPDO_RESET, /* GPDO 98 */\r
+ PORT_GPDO_RESET, /* GPDO 99 */\r
+ PORT_GPDO_RESET, /* GPDO 100 */\r
+ PORT_GPDO_RESET, /* GPDO 101 */\r
+ PORT_GPDO_RESET, /* GPDO 102 */\r
+ PORT_GPDO_RESET, /* GPDO 103 */\r
+ PORT_GPDO_RESET, /* GPDO 104 */\r
+ PORT_GPDO_RESET, /* GPDO 105 */\r
+ PORT_GPDO_RESET, /* GPDO 106 */\r
+ PORT_GPDO_RESET, /* GPDO 107 */\r
+ PORT_GPDO_RESET, /* GPDO 108 */\r
+ PORT_GPDO_RESET, /* GPDO 109 */\r
+ PORT_GPDO_RESET, /* GPDO 110 */\r
+ PORT_GPDO_RESET, /* GPDO 111 */\r
+ PORT_GPDO_RESET, /* GPDO 112 */\r
+ PORT_GPDO_RESET, /* GPDO 113 */\r
+ PORT_GPDO_RESET, /* GPDO 114 */\r
+ PORT_GPDO_RESET, /* GPDO 115 */\r
+ PORT_GPDO_RESET, /* GPDO 116 */\r
+ PORT_GPDO_RESET, /* GPDO 117 */\r
+ PORT_GPDO_RESET, /* GPDO 118 */\r
+ PORT_GPDO_RESET, /* GPDO 119 */\r
+ PORT_GPDO_RESET, /* GPDO 120 */\r
+ PORT_GPDO_RESET, /* GPDO 121 */\r
+ PORT_GPDO_RESET, /* GPDO 122 */\r
+ PORT_GPDO_RESET, /* GPDO 123 */\r
+ PORT_GPDO_RESET, /* GPDO 124 */\r
+ PORT_GPDO_RESET, /* GPDO 125 */\r
+ PORT_GPDO_RESET, /* GPDO 126 */\r
+ PORT_GPDO_RESET, /* GPDO 127 */\r
+ PORT_GPDO_RESET, /* GPDO 128 */\r
+ PORT_GPDO_RESET, /* GPDO 129 */\r
+ PORT_GPDO_RESET, /* GPDO 130 */\r
+ PORT_GPDO_RESET, /* GPDO 131 */\r
+ PORT_GPDO_RESET, /* GPDO 132 */\r
+ PORT_GPDO_RESET, /* GPDO 133 */\r
+ PORT_GPDO_RESET, /* GPDO 134 */\r
+ PORT_GPDO_RESET, /* GPDO 135 */\r
+ PORT_GPDO_RESET, /* GPDO 136 */\r
+ PORT_GPDO_RESET, /* GPDO 137 */\r
+ PORT_GPDO_RESET, /* GPDO 138 */\r
+ PORT_GPDO_RESET, /* GPDO 139 */\r
+ PORT_GPDO_RESET, /* GPDO 140 */\r
+ PORT_GPDO_RESET, /* GPDO 141 */\r
+ PORT_GPDO_RESET, /* GPDO 142 */\r
+ PORT_GPDO_RESET, /* GPDO 143 */\r
+ PORT_GPDO_RESET, /* GPDO 144 */\r
+ PORT_GPDO_RESET, /* GPDO 145 */\r
+ PORT_GPDO_RESET, /* GPDO 146 */\r
+ PORT_GPDO_RESET, /* GPDO 147 */\r
+ PORT_GPDO_RESET, /* GPDO 148 */\r
+ PORT_GPDO_RESET, /* GPDO 149 */\r
+ PORT_GPDO_RESET, /* GPDO 150 */\r
+ PORT_GPDO_RESET, /* GPDO 151 */\r
+ PORT_GPDO_RESET, /* GPDO 152 */\r
+ PORT_GPDO_RESET, /* GPDO 153 */\r
+ PORT_GPDO_RESET, /* GPDO 154 */\r
+ PORT_GPDO_RESET, /* GPDO 155 */\r
+ PORT_GPDO_RESET, /* GPDO 156 */\r
+ PORT_GPDO_RESET, /* GPDO 157 */\r
+ PORT_GPDO_RESET, /* GPDO 158 */\r
+ PORT_GPDO_RESET, /* GPDO 159 */\r
+ PORT_GPDO_RESET, /* GPDO 160 */\r
+ PORT_GPDO_RESET, /* GPDO 161 */\r
+ PORT_GPDO_RESET, /* GPDO 162 */\r
+ PORT_GPDO_RESET, /* GPDO 163 */\r
+ PORT_GPDO_RESET, /* GPDO 164 */\r
+ PORT_GPDO_RESET, /* GPDO 165 */\r
+ PORT_GPDO_RESET, /* GPDO 166 */\r
+ PORT_GPDO_RESET, /* GPDO 167 */\r
+ PORT_GPDO_RESET, /* GPDO 168 */\r
+ PORT_GPDO_RESET, /* GPDO 169 */\r
+ PORT_GPDO_RESET, /* GPDO 170 */\r
+ PORT_GPDO_RESET, /* GPDO 171 */\r
+ PORT_GPDO_RESET, /* GPDO 172 */\r
+ PORT_GPDO_RESET, /* GPDO 173 */\r
+ PORT_GPDO_RESET, /* GPDO 174 */\r
+ PORT_GPDO_RESET, /* GPDO 175 */\r
+ PORT_GPDO_RESET, /* GPDO 176 */\r
+ PORT_GPDO_RESET, /* GPDO 177 */\r
+ PORT_GPDO_RESET, /* GPDO 178 */\r
+ PORT_GPDO_RESET, /* GPDO 179 */\r
+ PORT_GPDO_RESET, /* GPDO 180 */\r
+ PORT_GPDO_RESET, /* GPDO 181 */\r
+ PORT_GPDO_RESET, /* GPDO 182 */\r
+ PORT_GPDO_RESET, /* GPDO 183 */\r
+ PORT_GPDO_RESET, /* GPDO 184 */\r
+ PORT_GPDO_RESET, /* GPDO 185 */\r
+ PORT_GPDO_RESET, /* GPDO 186 */\r
+ PORT_GPDO_RESET, /* GPDO 187 */\r
+ PORT_GPDO_RESET, /* GPDO 188 */\r
+ PORT_GPDO_RESET, /* GPDO 189 */\r
+ PORT_GPDO_RESET, /* GPDO 190 */\r
+ PORT_GPDO_RESET, /* GPDO 191 */\r
+ PORT_GPDO_RESET, /* GPDO 192 */\r
+ PORT_GPDO_RESET, /* GPDO 193 */\r
+ PORT_GPDO_RESET, /* GPDO 194 */\r
+ PORT_GPDO_RESET, /* GPDO 195 */\r
+ PORT_GPDO_RESET, /* GPDO 196 */\r
+ PORT_GPDO_RESET, /* GPDO 197 */\r
+ PORT_GPDO_RESET, /* GPDO 198 */\r
+ PORT_GPDO_RESET, /* GPDO 199 */\r
+ PORT_GPDO_RESET, /* GPDO 200 */\r
+ PORT_GPDO_RESET, /* GPDO 201 */\r
+ PORT_GPDO_RESET, /* GPDO 202 */\r
+ PORT_GPDO_RESET, /* GPDO 203 */\r
+ PORT_GPDO_RESET, /* GPDO 204 */\r
+ PORT_GPDO_RESET, /* GPDO 205 */\r
+ PORT_GPDO_RESET, /* GPDO 206 */\r
+ PORT_GPDO_RESET, /* GPDO 207 */\r
+ PORT_GPDO_RESET, /* GPDO 208 */\r
+ PORT_GPDO_RESET, /* GPDO 209 */\r
+ PORT_GPDO_RESET, /* GPDO 210 */\r
+ PORT_GPDO_RESET, /* GPDO 211 */\r
+ PORT_GPDO_RESET, /* GPDO 212 */\r
+ PORT_GPDO_RESET, /* GPDO 213 */\r
+};\r
+\r
+const Port_ConfigType PortConfigData =\r
+{\r
+ .padCnt = sizeof(PortPadConfigData),\r
+ .padConfig = PortPadConfigData,\r
+ .outCnt = sizeof(PortOutConfigData),\r
+ .outConfig = PortOutConfigData,\r
+};\r
--- /dev/null
+/*\r
+* Configuration of module: Port (Port_Cfg.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+
+#if !(((PORT_SW_MAJOR_VERSION == 1) && (PORT_SW_MINOR_VERSION == 0)) )
+#error Port: Configuration file expected BSW module version to be 1.0.*
+#endif
+
+\r
+#ifndef PORT_CFG_H_\r
+#define PORT_CFG_H_\r
+\r
+#include "Std_Types.h"\r
+\r
+#define PORT_VERSION_INFO_API STD_OFF\r
+#define PORT_DEV_ERROR_DETECT STD_OFF\r
+#define PORT_SET_PIN_MODE_API STD_OFF\r
+#define PORT_SET_PIN_DIRECTION_API STD_OFF\r
+\r
+#define PORT_BIT0 (1<<15)\r
+#define PORT_BIT1 (1<<14)\r
+#define PORT_BIT2 (1<<13)\r
+#define PORT_BIT3 (1<<12)\r
+#define PORT_BIT4 (1<<11)\r
+#define PORT_BIT5 (1<<10)\r
+#define PORT_BIT6 (1<<9)\r
+#define PORT_BIT7 (1<<8)\r
+#define PORT_BIT8 (1<<7)\r
+#define PORT_BIT9 (1<<6)\r
+#define PORT_BIT10 (1<<5)\r
+#define PORT_BIT11 (1<<4)\r
+#define PORT_BIT12 (1<<3)\r
+#define PORT_BIT13 (1<<2)\r
+#define PORT_BIT14 (1<<1)\r
+#define PORT_BIT15 (1<<0)\r
+\r
+#define PORT_WPE_BIT PORT_BIT14\r
+#define PORT_WPS_BIT PORT_BIT15\r
+#define PORT_SRC0 PORT_BIT12\r
+#define PORT_SRC1 PORT_BIT13\r
+\r
+#define PORT_PULL_UP (PORT_WPE_BIT|PORT_WPS_BIT)\r
+#define PORT_PULL_DOWN (PORT_WPE_BIT)\r
+#define PORT_PULL_NONE 0\r
+#define PORT_SLEW_RATE_MIN 0\r
+#define PORT_SLEW_RATE_MED PORT_BIT13\r
+#define PORT_SLEW_RATE_MAX (PORT_BIT12|PORT_BIT13)\r
+#define PORT_HYS_ENABLE PORT_BIT11\r
+#define PORT_ODE_ENABLE PORT_BIT10\r
+#define PORT_IBE_ENABLE PORT_BIT7\r
+#define PORT_OBE_ENABLE PORT_BIT6\r
+#define PORT_IO (0)\r
+#define PORT_GPIO_APC PORT_BIT2\r
+#define PORT_FUNC0 (0)\r
+#define PORT_FUNC1 (PORT_BIT5)\r
+#define PORT_FUNC2 (PORT_BIT4)\r
+#define PORT_FUNC3 (PORT_BIT4|PORT_BIT5)\r
+#define PORT_FUNC4 (PORT_BIT3)\r
+\r
+#define PORT_PCR_RESET (0)\r
+#define PORT_GPDO_RESET (0)\r
+\r
+#define PORT_GPDO_HIGH (1)\r
+\r
+\r
+typedef uint16 Port_PinType;\r
+\r
+typedef struct\r
+{\r
+ uint16_t padCnt;\r
+ const uint16_t *padConfig;\r
+ uint16_t outCnt;\r
+ const uint8_t *outConfig;\r
+// uint16_t inCnt;\r
+// const uint8_t *inConfig;\r
+} Port_ConfigType;\r
+\r
+extern const Port_ConfigType PortConfigData;\r
+\r
+#define PORT_PIN_NAME_CNTXA 83 \r
+#define PORT_PIN_NAME_CNRXA 84 \r
+#define PORT_PIN_NAME_GPIO0 0 \r
+\r
+#endif /* PORT_CFG_H_ */\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte.c */\r
+#include "Os.h"\r
+#include "Rte_Type.h"\r
+#include "Rte_Data.h"\r
+#include <string.h>\r
+#include "Rte_Calculator_Internal.h"\r
+#include "Rte_Tester_Internal.h"\r
+#include "Rte_Logger_Internal.h"\r
+#include "Rte_Logger2_Internal.h"\r
+#include "Com.h"\r
+\r
+Rte_DE_Read_TesterRunnable_ReadArg1 Rte_Buf_TesterRunnable_Argumentsarg1_ibuffer;\r
+Rte_DE_Read_TesterRunnable_ReadArg2 Rte_Buf_TesterRunnable_Argumentsarg2_ibuffer;\r
+Rte_DE_Read_FreqReqRunnable_ReadFreqReq Rte_Buf_FreqReqRunnable_FreqReqfreq_ibuffer;\r
+Rte_DE_Write_TesterRunnable_WriteResult Rte_Buf_TesterRunnable_Resultresult_ibuffer;\r
+Rte_DE_Write_FreqReqRunnable_WriteFreqReqInd Rte_Buf_FreqReqRunnable_FreqReqIndfreq_ibuffer;\r
+Rte_CDS_Tester Rte_Inst_Tester =\r
+{\r
+ .TesterRunnable_Arguments_arg1 = &Rte_Buf_TesterRunnable_Argumentsarg1_ibuffer,\r
+ .TesterRunnable_Arguments_arg2 = &Rte_Buf_TesterRunnable_Argumentsarg2_ibuffer,\r
+ .FreqReqRunnable_FreqReq_freq = &Rte_Buf_FreqReqRunnable_FreqReqfreq_ibuffer,\r
+ .TesterRunnable_Result_result = &Rte_Buf_TesterRunnable_Resultresult_ibuffer,\r
+ .FreqReqRunnable_FreqReqInd_freq = &Rte_Buf_FreqReqRunnable_FreqReqIndfreq_ibuffer,\r
+};\r
+\r
+Rte_DE_Read_LoggerRunnable_ReadResult Rte_Buf_LoggerRunnable_Resultresult_ibuffer;\r
+Rte_CDS_Logger Rte_Inst_Logger =\r
+{\r
+ .LoggerRunnable_Result_result = &Rte_Buf_LoggerRunnable_Resultresult_ibuffer,\r
+};\r
+\r
+Rte_DE_Read_Logger2Runnable_ReadResult Rte_Buf_Logger2Runnable_Resultresult_ibuffer;\r
+Rte_CDS_Logger2 Rte_Inst_Logger2 =\r
+{\r
+ .Logger2Runnable_Result_result = &Rte_Buf_Logger2Runnable_Resultresult_ibuffer,\r
+};\r
+\r
+void Rte_PRE_TesterRunnable() {\r
+ GetResource(RES_SCHEDULER);\r
+\r
+ uint8 Arg1_buf = 0;\r
+ Com_ReceiveSignal(Arg1, &Arg1_buf);\r
+ Rte_Inst_Tester.TesterRunnable_Arguments_arg1->value = (UInt8) Arg1_buf;\r
+\r
+ uint8 Arg2_buf = 0;\r
+ Com_ReceiveSignal(Arg2, &Arg2_buf);\r
+ Rte_Inst_Tester.TesterRunnable_Arguments_arg2->value = (UInt8) Arg2_buf;\r
+\r
+ ReleaseResource(RES_SCHEDULER);\r
+\r
+}\r
+\r
+void Rte_PRE_FreqReqRunnable() {\r
+ GetResource(RES_SCHEDULER);\r
+\r
+ uint32 FreqReqSig_buf = 0;\r
+ Com_ReceiveSignal(FreqReqSig, &FreqReqSig_buf);\r
+ Rte_Inst_Tester.FreqReqRunnable_FreqReq_freq->value =\r
+ (UInt32) FreqReqSig_buf;\r
+\r
+ ReleaseResource(RES_SCHEDULER);\r
+\r
+}\r
+\r
+void Rte_PRE_LoggerRunnable() {\r
+ GetResource(RES_SCHEDULER);\r
+\r
+ Rte_Inst_Logger.LoggerRunnable_Result_result->value =\r
+ Rte_Buf_Tester_prototype_Result_result;\r
+\r
+ ReleaseResource(RES_SCHEDULER);\r
+\r
+}\r
+\r
+void Rte_PRE_Logger2Runnable() {\r
+ GetResource(RES_SCHEDULER);\r
+\r
+ Rte_Inst_Logger2.Logger2Runnable_Result_result->value =\r
+ Rte_Buf_Tester_prototype_Result_result;\r
+\r
+ ReleaseResource(RES_SCHEDULER);\r
+\r
+}\r
+\r
+void Rte_POST_TesterRunnable() {\r
+ GetResource(RES_SCHEDULER);\r
+\r
+ uint8 ResultSig_buf =\r
+ (uint8) Rte_Inst_Tester.TesterRunnable_Result_result->value;\r
+ Com_SendSignal(ResultSig, &ResultSig_buf);\r
+\r
+ Rte_WriteBuffer_Rte_Buf_Tester_prototype_Result_result(\r
+ Rte_Inst_Tester.TesterRunnable_Result_result->value);\r
+\r
+ ReleaseResource(RES_SCHEDULER);\r
+\r
+}\r
+\r
+void Rte_POST_FreqReqRunnable() {\r
+ GetResource(RES_SCHEDULER);\r
+\r
+ uint32 FreqIndSig_buf =\r
+ (uint32) Rte_Inst_Tester.FreqReqRunnable_FreqReqInd_freq->value;\r
+ Com_SendSignal(FreqIndSig, &FreqIndSig_buf);\r
+\r
+ ReleaseResource(RES_SCHEDULER);\r
+\r
+}\r
+\r
+void Rte_TesterRunnable() {\r
+ Rte_PRE_TesterRunnable();\r
+ TesterRunnable();\r
+ Rte_POST_TesterRunnable();\r
+}\r
+\r
+void Rte_FreqReqRunnable() {\r
+ Rte_PRE_FreqReqRunnable();\r
+ FreqReqRunnable();\r
+ Rte_POST_FreqReqRunnable();\r
+}\r
+\r
+Std_ReturnType Rte_Multiply(const UInt8 arg1, const UInt8 arg2,\r
+ UInt16* result) {\r
+ Std_ReturnType retVal = Multiply(arg1, arg2, result);\r
+ return retVal;\r
+}\r
+\r
+void Rte_LoggerRunnable() {\r
+ Rte_PRE_LoggerRunnable();\r
+ LoggerRunnable();\r
+}\r
+\r
+void Rte_Logger2Runnable() {\r
+ Rte_PRE_Logger2Runnable();\r
+ Logger2Runnable();\r
+}\r
+\r
+Std_ReturnType Rte_Start() {\r
+ return RTE_E_OK;\r
+}\r
+\r
+void StepTask() {\r
+ EventMaskType eventMask = 0;\r
+ while (1) {\r
+ WaitEvent(EVENT_MASK_StepEvent);\r
+ GetResource(RES_SCHEDULER);\r
+ GetEvent(TASK_ID_StepTask, &eventMask);\r
+ ClearEvent(EVENT_MASK_StepEvent);\r
+ ReleaseResource(RES_SCHEDULER);\r
+ if (eventMask & EVENT_MASK_StepEvent) {\r
+ Rte_TesterRunnable();\r
+ }\r
+ if (eventMask & EVENT_MASK_StepEvent) {\r
+ Rte_Logger2Runnable();\r
+ }\r
+ if (eventMask & EVENT_MASK_StepEvent) {\r
+ Rte_LoggerRunnable();\r
+ }\r
+ }\r
+}\r
+\r
--- /dev/null
+obj-y += Rte.o
+obj-y += Rte_Data.o
+obj-y += Rte_Cbk.o
+obj-y += Rte_Calculator.o
+obj-y += Rte_Tester.o
+obj-y += Rte_Logger.o
+obj-y += Rte_Logger2.o
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Calculator.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Calculator.c */\r
+#include <string.h>\r
+#include "Os.h"\r
+#include "Rte_Calculator.h"\r
+#include "Rte_Data.h"\r
+#include "Com.h"\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Calculator.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Calculator.h */\r
+\r
+#ifndef RTE_CALCULATOR_H\r
+#define RTE_CALCULATOR_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+Std_ReturnType Multiply(const UInt8 arg1, const UInt8 arg2, UInt16* result);\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Calculator_Internal.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Calculator.h */\r
+\r
+#ifndef RTE_CALCULATOR_H\r
+#define RTE_CALCULATOR_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+Std_ReturnType Multiply(const UInt8 arg1, const UInt8 arg2, UInt16* result);\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Cbk.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Cbk.c */\r
+#include "Os.h"\r
+#include "Rte_Data.h"\r
+\r
+void Rte_COMCbk_Arg1() {\r
+}\r
+\r
+void Rte_COMCbkTOut_Arg1() {\r
+}\r
+\r
+void Rte_COMCbk_Arg2() {\r
+}\r
+\r
+void Rte_COMCbkTOut_Arg2() {\r
+}\r
+\r
+void Rte_COMCbk_ResultSig() {\r
+}\r
+\r
+void Rte_COMCbkTOut_ResultSig() {\r
+}\r
+\r
+void Rte_COMCbk_FreqReqSig() {\r
+ Rte_FreqReqRunnable();\r
+}\r
+\r
+void Rte_COMCbkTOut_FreqReqSig() {\r
+}\r
+\r
+void Rte_COMCbk_FreqIndSig() {\r
+}\r
+\r
+void Rte_COMCbkTOut_FreqIndSig() {\r
+}\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Data.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Data.c */\r
+#include "Os.h"\r
+#include "Rte_Data.h"\r
+#include "Rte_Type.h"\r
+#include <string.h>\r
+\r
+UInt16 Rte_Buf_Tester_prototype_Result_result;\r
+\r
+void Rte_WriteBuffer_Rte_Buf_Tester_prototype_Result_result(UInt16 Value) {\r
+ Rte_Buf_Tester_prototype_Result_result = Value;\r
+}\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Data.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Data.h */\r
+\r
+#ifndef RTE_DATA_H\r
+#define RTE_DATA_H\r
+\r
+#include "Rte_Type.h"\r
+#include "cirq_buffer.h"\r
+\r
+extern UInt16 Rte_Buf_Tester_prototype_Result_result;\r
+\r
+void Rte_WriteBuffer_Rte_Buf_Tester_prototype_Result_result(UInt16 Value);\r
+\r
+void Rte_TesterRunnable();\r
+\r
+void Rte_FreqReqRunnable();\r
+\r
+Std_ReturnType Rte_Multiply(const UInt8 arg1, const UInt8 arg2, UInt16* result);\r
+\r
+void Rte_LoggerRunnable();\r
+\r
+void Rte_Logger2Runnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Logger.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Logger.c */\r
+#include <string.h>\r
+#include "Os.h"\r
+#include "Rte_Logger.h"\r
+#include "Rte_Data.h"\r
+#include "Com.h"\r
+\r
+extern Rte_CDS_Logger Rte_Inst_Logger;\r
+\r
+UInt16 Rte_IRead_LoggerRunnable_Result_result() {\r
+ return Rte_Inst_Logger.LoggerRunnable_Result_result->value;\r
+}\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Logger.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Logger.h */\r
+\r
+#ifndef RTE_LOGGER_H\r
+#define RTE_LOGGER_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+UInt16 Rte_IRead_LoggerRunnable_Result_result();\r
+\r
+void LoggerRunnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Logger2.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Logger2.c */\r
+#include <string.h>\r
+#include "Os.h"\r
+#include "Rte_Logger2.h"\r
+#include "Rte_Data.h"\r
+#include "Com.h"\r
+\r
+extern Rte_CDS_Logger2 Rte_Inst_Logger2;\r
+\r
+UInt16 Rte_IRead_Logger2Runnable_Result_result() {\r
+ return Rte_Inst_Logger2.Logger2Runnable_Result_result->value;\r
+}\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Logger2.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Logger2.h */\r
+\r
+#ifndef RTE_LOGGER2_H\r
+#define RTE_LOGGER2_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+UInt16 Rte_IRead_Logger2Runnable_Result_result();\r
+\r
+void Logger2Runnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Logger2_Internal.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Logger2.h */\r
+\r
+#ifndef RTE_LOGGER2_H\r
+#define RTE_LOGGER2_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+UInt16 Rte_IRead_Logger2Runnable_Result_result();\r
+\r
+void Logger2Runnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Logger_Internal.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Logger.h */\r
+\r
+#ifndef RTE_LOGGER_H\r
+#define RTE_LOGGER_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+UInt16 Rte_IRead_LoggerRunnable_Result_result();\r
+\r
+void LoggerRunnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Tester.c)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Tester.c */\r
+#include <string.h>\r
+#include "Os.h"\r
+#include "Rte_Tester.h"\r
+#include "Rte_Data.h"\r
+#include "Com.h"\r
+#include "Rte_Calculator.h"\r
+\r
+extern Rte_CDS_Tester Rte_Inst_Tester;\r
+\r
+UInt8 Rte_IRead_TesterRunnable_Arguments_arg1() {\r
+ return Rte_Inst_Tester.TesterRunnable_Arguments_arg1->value;\r
+}\r
+\r
+UInt8 Rte_IRead_TesterRunnable_Arguments_arg2() {\r
+ return Rte_Inst_Tester.TesterRunnable_Arguments_arg2->value;\r
+}\r
+\r
+void Rte_IWrite_TesterRunnable_Result_result(UInt16 Value) {\r
+ /** Note: this API is required to be called during execution of runnable TesterRunnable. If this API is not called invalid data will be written back to the RTE buffers. See note on page 113 of the AUTOSAR RTE specification. */\r
+ Rte_Inst_Tester.TesterRunnable_Result_result->value = Value;\r
+}\r
+\r
+Std_ReturnType Rte_Call_Tester_Calculator_Multiply(const UInt8 arg1,\r
+ const UInt8 arg2, UInt16* result) {\r
+ return Rte_Multiply(arg1, arg2, result);\r
+}\r
+\r
+UInt32 Rte_IRead_FreqReqRunnable_FreqReq_freq() {\r
+ return Rte_Inst_Tester.FreqReqRunnable_FreqReq_freq->value;\r
+}\r
+\r
+void Rte_IWrite_FreqReqRunnable_FreqReqInd_freq(UInt32 Value) {\r
+ /** Note: this API is required to be called during execution of runnable FreqReqRunnable. If this API is not called invalid data will be written back to the RTE buffers. See note on page 113 of the AUTOSAR RTE specification. */\r
+ Rte_Inst_Tester.FreqReqRunnable_FreqReqInd_freq->value = Value;\r
+}\r
+\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Tester.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Tester.h */\r
+\r
+#ifndef RTE_TESTER_H\r
+#define RTE_TESTER_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+#define Rte_Call_Calculator_Multiply Rte_Call_Tester_Calculator_Multiply\r
+\r
+UInt8 Rte_IRead_TesterRunnable_Arguments_arg1();\r
+\r
+UInt8 Rte_IRead_TesterRunnable_Arguments_arg2();\r
+\r
+void Rte_IWrite_TesterRunnable_Result_result(UInt16 Value);\r
+\r
+Std_ReturnType Rte_Call_Tester_Calculator_Multiply(const UInt8 arg1,\r
+ const UInt8 arg2, UInt16* result);\r
+\r
+UInt32 Rte_IRead_FreqReqRunnable_FreqReq_freq();\r
+\r
+void Rte_IWrite_FreqReqRunnable_FreqReqInd_freq(UInt32 Value);\r
+\r
+void TesterRunnable();\r
+\r
+void FreqReqRunnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Tester_Internal.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Tester.h */\r
+\r
+#ifndef RTE_TESTER_H\r
+#define RTE_TESTER_H\r
+\r
+#include "Rte_Type.h"\r
+\r
+UInt8 Rte_IRead_TesterRunnable_Arguments_arg1();\r
+\r
+UInt8 Rte_IRead_TesterRunnable_Arguments_arg2();\r
+\r
+void Rte_IWrite_TesterRunnable_Result_result(UInt16 Value);\r
+\r
+Std_ReturnType Rte_Call_Tester_Calculator_Multiply(const UInt8 arg1,\r
+ const UInt8 arg2, UInt16* result);\r
+\r
+UInt32 Rte_IRead_FreqReqRunnable_FreqReq_freq();\r
+\r
+void Rte_IWrite_FreqReqRunnable_FreqReqInd_freq(UInt32 Value);\r
+\r
+void TesterRunnable();\r
+\r
+void FreqReqRunnable();\r
+\r
+#endif\r
--- /dev/null
+/*\r
+* Configuration of module: Rte (Rte_Type.h)\r
+*\r
+* Created by: \r
+* Copyright: \r
+*\r
+* Configured for (MCU): MPC5567\r
+*\r
+* Module vendor: ArcCore\r
+* Generator version: 0.0.9\r
+*\r
+* Generated by Arctic Studio (http://arccore.com) \r
+*/\r
+\r
+/* Rte_Type.h */\r
+\r
+#ifndef RTE_TYPE_H\r
+#define RTE_TYPE_H\r
+\r
+#include "Rte.h"\r
+\r
+typedef void * Rte_Instance;\r
+\r
+typedef boolean Boolean;\r
+\r
+#define _DEFINED_TYPEDEF_FOR_Boolean_ \r
+\r
+typedef float Float;\r
+\r
+#define _DEFINED_TYPEDEF_FOR_Float_ \r
+\r
+typedef sint16 SInt16;\r
+#define SInt16_LowerLimit -32768\r
+#define SInt16_UpperLimit 32767\r
+\r
+#define _DEFINED_TYPEDEF_FOR_SInt16_ \r
+\r
+typedef sint32 SInt32;\r
+#define SInt32_LowerLimit -2147483648\r
+#define SInt32_UpperLimit 2147483647\r
+\r
+#define _DEFINED_TYPEDEF_FOR_SInt32_ \r
+\r
+typedef sint8 SInt8;\r
+#define SInt8_LowerLimit -128\r
+#define SInt8_UpperLimit 127\r
+\r
+#define _DEFINED_TYPEDEF_FOR_SInt8_ \r
+\r
+typedef uint16 UInt16;\r
+#define UInt16_LowerLimit 0\r
+#define UInt16_UpperLimit 65535\r
+\r
+#define _DEFINED_TYPEDEF_FOR_UInt16_ \r
+\r
+typedef uint32 UInt32;\r
+#define UInt32_LowerLimit 0\r
+#define UInt32_UpperLimit 4294967295\r
+\r
+#define _DEFINED_TYPEDEF_FOR_UInt32_ \r
+\r
+typedef uint8 UInt8;\r
+#define UInt8_LowerLimit 0\r
+#define UInt8_UpperLimit 255\r
+\r
+#define _DEFINED_TYPEDEF_FOR_UInt8_ \r
+\r
+typedef struct {\r
+ UInt8 value;\r
+} Rte_DE_Read_TesterRunnable_ReadArg1;\r
+\r
+typedef struct {\r
+ UInt8 value;\r
+} Rte_DE_Read_TesterRunnable_ReadArg2;\r
+\r
+typedef struct {\r
+ UInt16 value;\r
+} Rte_DE_Write_TesterRunnable_WriteResult;\r
+\r
+typedef struct {\r
+ UInt32 value;\r
+} Rte_DE_Read_FreqReqRunnable_ReadFreqReq;\r
+\r
+typedef struct {\r
+ UInt32 value;\r
+} Rte_DE_Write_FreqReqRunnable_WriteFreqReqInd;\r
+\r
+typedef struct {\r
+ UInt16 value;\r
+} Rte_DE_Read_LoggerRunnable_ReadResult;\r
+\r
+typedef struct {\r
+ UInt16 value;\r
+} Rte_DE_Read_Logger2Runnable_ReadResult;\r
+\r
+typedef struct {\r
+} Rte_PDS_Calculator_CalculatorOperations_P;\r
+typedef struct {\r
+} Rte_PDS_Calculator_CalculatorOperations_R;\r
+\r
+typedef struct {\r
+} Rte_PDS_Tester_CalculatorOperations_P;\r
+typedef struct {\r
+} Rte_PDS_Tester_CalculatorOperations_R;\r
+\r
+typedef struct {\r
+ Std_ReturnType (*Write_arg1)(UInt8);\r
+ Std_ReturnType (*Write_arg2)(UInt8);\r
+} Rte_PDS_Tester_ArgumentIf_P;\r
+typedef struct {\r
+ Std_ReturnType (*Read_arg1)(UInt8);\r
+ Std_ReturnType (*Read_arg2)(UInt8);\r
+} Rte_PDS_Tester_ArgumentIf_R;\r
+\r
+typedef struct {\r
+ Std_ReturnType (*Write_result)(UInt16);\r
+} Rte_PDS_Tester_ResultIf_P;\r
+typedef struct {\r
+ Std_ReturnType (*Read_result)(UInt16);\r
+} Rte_PDS_Tester_ResultIf_R;\r
+\r
+typedef struct {\r
+ Std_ReturnType (*Write_freq)(UInt32);\r
+} Rte_PDS_Tester_FreqReqIf_P;\r
+typedef struct {\r
+ Std_ReturnType (*Read_freq)(UInt32);\r
+} Rte_PDS_Tester_FreqReqIf_R;\r
+\r
+typedef struct {\r
+ Rte_DE_Read_TesterRunnable_ReadArg1* TesterRunnable_Arguments_arg1;\r
+ Rte_DE_Read_TesterRunnable_ReadArg2* TesterRunnable_Arguments_arg2;\r
+ Rte_DE_Read_FreqReqRunnable_ReadFreqReq* FreqReqRunnable_FreqReq_freq;\r
+ Rte_DE_Write_TesterRunnable_WriteResult* TesterRunnable_Result_result;\r
+ Rte_DE_Write_FreqReqRunnable_WriteFreqReqInd* FreqReqRunnable_FreqReqInd_freq;\r
+} Rte_CDS_Tester;\r
+\r
+typedef struct {\r
+ Std_ReturnType (*Write_result)(UInt16);\r
+} Rte_PDS_Logger_ResultIf_P;\r
+typedef struct {\r
+ Std_ReturnType (*Read_result)(UInt16);\r
+} Rte_PDS_Logger_ResultIf_R;\r
+\r
+typedef struct {\r
+ Rte_DE_Read_LoggerRunnable_ReadResult* LoggerRunnable_Result_result;\r
+} Rte_CDS_Logger;\r
+\r
+typedef struct {\r
+ Std_ReturnType (*Write_result)(UInt16);\r
+} Rte_PDS_Logger2_ResultIf_P;\r
+typedef struct {\r
+ Std_ReturnType (*Read_result)(UInt16);\r
+} Rte_PDS_Logger2_ResultIf_R;\r
+\r
+typedef struct {\r
+ Rte_DE_Read_Logger2Runnable_ReadResult* Logger2Runnable_Result_result;\r
+} Rte_CDS_Logger2;\r
+\r
+#endif\r
--- /dev/null
+\r
+\r
+PROJECTNAME=rte_simple\r
+ROOTDIR?=../../../..\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
+include $(ROOTDIR)/examples/rte_simple/rte_simple.mk\r
+\r
+ifneq (${MAKELEVEL},0) \r
+\r
+ # object files\r
+ PROJECT_C_FILES=$(notdir $(wildcard ../*.c))\r
+ obj-y += $(PROJECT_C_FILES:%.c=%.o)\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
+\r
+endif\r
+\r
+\r
+\r
+\r
+\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/3.1.5 autosar_3-1-5.xsd">\r
+ <TOP-LEVEL-PACKAGES>\r
+ <AR-PACKAGE>\r
+ <SHORT-NAME>rte_simple_mpc5567qrtech</SHORT-NAME>\r
+ <ELEMENTS>\r
+ <ECU-CONFIGURATION UUID="e933134b-ab53-4c9b-8075-815097cbc4a5">\r
+ <SHORT-NAME>rte_simple_mpc5567qrtech</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <DOC-REVISIONS>\r
+ <DOC-REVISION />\r
+ </DOC-REVISIONS>\r
+ <SDGS>\r
+ <SDG GID="Arccore::EcuOptions">\r
+ <SD GID="MCU">MPC5567</SD>\r
+ <SD GID="GENDIR">${PROJECT_LOC}/config</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <ECU-EXTRACT-REF DEST="SYSTEM">/rte_simple_extract/rte_simple_extract</ECU-EXTRACT-REF>\r
+ <ECU-SW-COMPOSITION-REF DEST="ECU-SW-COMPOSITION">/rte_simple_mpc5567qrtech/SwComposition_rte_simple_mpc5567qrtech</ECU-SW-COMPOSITION-REF>\r
+ <MODULE-REFS>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/CanIf</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Com</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Det</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/EcuM</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Os</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/PduR</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Rte</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/EcuC</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Can</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Mcu</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Dio</MODULE-REF>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/rte_simple_mpc5567qrtech/Port</MODULE-REF>\r
+ </MODULE-REFS>\r
+ </ECU-CONFIGURATION>\r
+ <ECU-SW-COMPOSITION UUID="b12f61f3-06aa-4f92-9b39-45f70fffdf3e">\r
+ <SHORT-NAME>SwComposition_rte_simple_mpc5567qrtech</SHORT-NAME>\r
+ <ECU-EXTRACT-REF DEST="SYSTEM">/rte_simple_extract/rte_simple_extract</ECU-EXTRACT-REF>\r
+ </ECU-SW-COMPOSITION>\r
+ <MODULE-CONFIGURATION UUID="4d83e597-90c1-4d3f-a705-7fc429969c15">\r
+ <SHORT-NAME>CanIf</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.5</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/CanIf</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="eda70b57-11bd-4cdf-b638-9519212d3619">\r
+ <SHORT-NAME>CanIfDispatchConfig</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfDispatchConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfBusOffNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfErrorNotificaton</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfWakeupNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfWakeupValidNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="0dbd69ee-2890-4bae-b68f-bd81da282868">\r
+ <SHORT-NAME>CanIfDriverConfig</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfDriverConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDriverConfig/CanIfBusoffNotification</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDriverConfig/CanIfReceiveIndication</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDriverConfig/CanIfTransmitCancellation</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDriverConfig/CanIfTxConfirmation</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDriverConfig/CanIfWakeupNotification</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f18a6f44-69e8-4c03-912b-2a81d7cde71e">\r
+ <SHORT-NAME>CanIfInitConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfConfigSet</DEFINITION-REF>\r
+ <VALUE />\r
+ </STRING-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfCanRxPduIds</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfCanTXPduIds</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfDynamicCanTXPduIds</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="8b258b27-c416-4b76-a6be-7238d03f718f">\r
+ <SHORT-NAME>Hoh_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="118f681e-c4c2-4898-a90b-2a75aa699fd5">\r
+ <SHORT-NAME>Hrh_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig/CanIfHrhType</DEFINITION-REF>\r
+ <VALUE>BASIC_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig/CanIfSoftwareFilterHrh</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig/CanIfCanControllerHrhIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/CanIf/Channel_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="SYMBOLIC-NAME-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig/CanIfHrhIdSymRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Can/CanConfigSet/HWObj_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="8cef8614-65cf-4ee9-bf26-5fdab69db8ab">\r
+ <SHORT-NAME>Hth_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHthConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHthConfig/CanIfHthType</DEFINITION-REF>\r
+ <VALUE>BASIC_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHthConfig/CanIfCanControllerIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/CanIf/Channel_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="SYMBOLIC-NAME-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHthConfig/CanIfHthIdSymRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Can/CanConfigSet/HWObj_2</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="8d680fe4-c85f-4b61-899b-3eb0c4bbca07">\r
+ <SHORT-NAME>Rx_RX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduCanId</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduDlc</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfReadRxPduData</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfReadRxPduNotifyStatus</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfRxPduIdCanIdType</DEFINITION-REF>\r
+ <VALUE>STANDARD_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfRxUserType</DEFINITION-REF>\r
+ <VALUE>PDUR</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfUserRxIndication</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduHrhRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/CanIf/CanIfInitConfiguration/Hoh_1/Hrh_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/RX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="767e6885-c134-4c86-bc73-14efd7fe1cfd">\r
+ <SHORT-NAME>Tx_TX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduIdCanId</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduIdDlc</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduType</DEFINITION-REF>\r
+ <VALUE>STATIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfReadTxPduNotifyStatus</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfTxPduIdCanIdType</DEFINITION-REF>\r
+ <VALUE>STANDARD_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfTxUserType</DEFINITION-REF>\r
+ <VALUE>PDUR</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfUserTxConfirmation</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduHthRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/CanIf/CanIfInitConfiguration/Hoh_1/Hth_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/TX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="4c9ba8d9-20da-43e7-a171-4e839b93c4d7">\r
+ <SHORT-NAME>Rx_FreqReq</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduCanId</DEFINITION-REF>\r
+ <VALUE>256</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduDlc</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfReadRxPduData</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfReadRxPduNotifyStatus</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfRxPduIdCanIdType</DEFINITION-REF>\r
+ <VALUE>STANDARD_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfRxUserType</DEFINITION-REF>\r
+ <VALUE>PDUR</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfUserRxIndication</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduHrhRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/CanIf/CanIfInitConfiguration/Hoh_1/Hrh_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqReq</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7f001146-0ee8-4194-826a-cac3acafd817">\r
+ <SHORT-NAME>Tx_FreqInd</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduIdCanId</DEFINITION-REF>\r
+ <VALUE>258</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduIdDlc</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduType</DEFINITION-REF>\r
+ <VALUE>STATIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfReadTxPduNotifyStatus</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfTxPduIdCanIdType</DEFINITION-REF>\r
+ <VALUE>STANDARD_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfTxUserType</DEFINITION-REF>\r
+ <VALUE>PDUR</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfUserTxConfirmation</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduHthRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/CanIf/CanIfInitConfiguration/Hoh_1/Hth_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqInd</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="a660143d-b08e-4709-b9b1-1657d4f34ec7">\r
+ <SHORT-NAME>CanIfPrivateConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfDlcCheck</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfNumberOfTxBuffers</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfSoftwareFilterType</DEFINITION-REF>\r
+ <VALUE />\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="3659cd4a-caf9-4ef4-bf23-4dfad7eb3831">\r
+ <SHORT-NAME>CanIfPublicConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfPublicConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/ArcCanIfDynamicPduConfiguration</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfMultipleDriverSupport</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfNumberOfCanHwUnits</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfReadRxPduDataApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfReadRxPduNotifyStatusApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfReadTxPduNotifyStatusApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfSetDynamicTxIdApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPublicConfiguration/CanIfWakeupEventApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="b984f7b3-fba5-4dac-819a-3419714d8464">\r
+ <SHORT-NAME>Channel_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfControllerConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/CanIf/CanIfControllerConfig/CanIfWakeupSupport</DEFINITION-REF>\r
+ <VALUE>NO_WAKEUP</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="SYMBOLIC-NAME-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfControllerConfig/CanIfControllerIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Can/CanConfigSet/Controller_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="6c606647-86d0-4274-97cd-b333c589849f">\r
+ <SHORT-NAME>Com</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.5</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Com</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="ea5d2145-208a-43ca-93d3-8091885e0bc2">\r
+ <SHORT-NAME>ComConfig</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComConfigurationId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="37730d3a-ded9-416d-b8b3-0a4d851ebfab">\r
+ <SHORT-NAME>ComPduGroup</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPduGroup</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPduGroup/ComIPduGroupHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7e2b5886-f5c5-4161-bbb4-09d2326a98d1">\r
+ <SHORT-NAME>RX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduCallout</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduRxHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalProcessing</DEFINITION-REF>\r
+ <VALUE>DEFERRED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduDirection</DEFINITION-REF>\r
+ <VALUE>RECEIVE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduGroupRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/ComPduGroup</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/RX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/Arg1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/Arg2</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="ae658de0-bbf6-4863-8d06-5ae1eab71009">\r
+ <SHORT-NAME>ComTxIPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduMinimumDelayTimeFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduUnusedAreasDefault</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="27ca5378-dc5d-41ed-8e6e-e072c9aabc95">\r
+ <SHORT-NAME>ComTxModeTrue</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="127d372f-6110-44fd-ab60-0331a5bd2c37">\r
+ <SHORT-NAME>ComTxMode</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeMode</DEFINITION-REF>\r
+ <VALUE>DIRECT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeNumberOfRepetitions</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeRepetitionPeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimeOffsetFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimePeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="d47c080e-bc57-4441-8a13-6d116d1c9f4f">\r
+ <SHORT-NAME>TX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduCallout</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduRxHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalProcessing</DEFINITION-REF>\r
+ <VALUE>DEFERRED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduDirection</DEFINITION-REF>\r
+ <VALUE>SEND</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduGroupRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/ComPduGroup</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/TX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/ResultSig</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="1bc84e7f-1d8f-49bf-a1a2-0829ff499c23">\r
+ <SHORT-NAME>ComTxIPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduMinimumDelayTimeFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduUnusedAreasDefault</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="c548fcbd-0e76-45fb-8840-a7bd11903ef8">\r
+ <SHORT-NAME>ComTxModeTrue</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="fe476a49-ccad-4a46-964f-312a99bdf509">\r
+ <SHORT-NAME>ComTxMode</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeMode</DEFINITION-REF>\r
+ <VALUE>DIRECT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeNumberOfRepetitions</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeRepetitionPeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimeOffsetFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimePeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7691d466-3c5e-4831-a656-bbb5e9ceaa3c">\r
+ <SHORT-NAME>Arg1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+ <VALUE>7</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+ <VALUE>BIG_ENDIAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+ <VALUE>5</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+ <VALUE>UINT8</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+ <VALUE>PENDING</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7dd06b07-796d-4fc1-ba0b-4f5181b6c9c8">\r
+ <SHORT-NAME>ResultSig</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+ <VALUE>7</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+ <VALUE>BIG_ENDIAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+ <VALUE>UINT8</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+ <VALUE>TRIGGERED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ae24e011-a990-4da9-b31a-922f4e9db3c8">\r
+ <SHORT-NAME>Arg2</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+ <VALUE>15</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+ <VALUE>8</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+ <VALUE>BIG_ENDIAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+ <VALUE>3</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+ <VALUE>UINT8</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+ <VALUE>PENDING</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="19c577da-ea27-429d-91b9-43a72b575cab">\r
+ <SHORT-NAME>FreqReq</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduCallout</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduRxHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalProcessing</DEFINITION-REF>\r
+ <VALUE>DEFERRED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduDirection</DEFINITION-REF>\r
+ <VALUE>RECEIVE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduGroupRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/ComPduGroup</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqReq</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/FreqReqSig</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="6c520470-ed07-4168-889e-fe435e73672d">\r
+ <SHORT-NAME>ComTxIPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduMinimumDelayTimeFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduUnusedAreasDefault</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="278dde55-2fef-4bb6-a709-7d30c1bfa326">\r
+ <SHORT-NAME>ComTxModeTrue</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="553e9864-ac08-4770-945f-da679dc262ea">\r
+ <SHORT-NAME>ComTxMode</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeMode</DEFINITION-REF>\r
+ <VALUE>DIRECT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeNumberOfRepetitions</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeRepetitionPeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimeOffsetFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimePeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="32109948-23f1-48d9-ac4b-5f0b2a287967">\r
+ <SHORT-NAME>FreqInd</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduCallout</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduRxHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalProcessing</DEFINITION-REF>\r
+ <VALUE>DEFERRED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduDirection</DEFINITION-REF>\r
+ <VALUE>SEND</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduGroupRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/ComPduGroup</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/PduIdRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqInd</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Com/ComConfig/FreqIndSig</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="fc1225b7-0355-42e0-911d-74c4970b0ae3">\r
+ <SHORT-NAME>ComTxIPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduMinimumDelayTimeFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduUnusedAreasDefault</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="81f3597d-1f71-4ead-a063-685d3bf66bb2">\r
+ <SHORT-NAME>ComTxModeTrue</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="fc0f6a16-cfec-474b-8dc7-118bf7c58bb9">\r
+ <SHORT-NAME>ComTxMode</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeMode</DEFINITION-REF>\r
+ <VALUE>DIRECT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeNumberOfRepetitions</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeRepetitionPeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimeOffsetFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimePeriodFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1b02d3f0-e937-4cfa-a803-dd96c40ee038">\r
+ <SHORT-NAME>FreqIndSig</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+ <VALUE>7</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+ <VALUE>32</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+ <VALUE>BIG_ENDIAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+ <VALUE>UINT32</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+ <VALUE>TRIGGERED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f51bb691-2289-4f69-9f43-e54fe0a555fb">\r
+ <SHORT-NAME>FreqReqSig</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+ <VALUE>7</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+ <VALUE>32</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+ <VALUE>Rte_COMCbk_FreqReqSig</VALUE>\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+ <VALUE>BIG_ENDIAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+ <VALUE>1000</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+ <VALUE>UINT32</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+ <VALUE>PENDING</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="30725e32-5b91-44ca-96ed-5fc422d0975a">\r
+ <SHORT-NAME>ComGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Com/ComGeneral/ComConfigurationTimeBase</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComGeneral/ComConfigurationUseDet</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComGeneral/ArcComBitPositionVersionAutosar4</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="f7008eaa-d1ef-42de-8e50-8ac5ed72346f">\r
+ <SHORT-NAME>Det</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.1</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Det</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="068cf719-70f0-41d2-9aa0-1e44fedbfb5d">\r
+ <SHORT-NAME>DetGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Det/DetGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Det/DetGeneral/DetEnableCallbacks</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Det/DetGeneral/DetUseRamlog</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Det/DetGeneral/DetWrapRamlog</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Det/DetGeneral/DetUseStdErr</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Det/DetGeneral/DetDeInitAPI</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Det/DetGeneral/DetNumberOfCallbacks</DEFINITION-REF>\r
+ <VALUE>5</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Det/DetGeneral/DetRamlogSize</DEFINITION-REF>\r
+ <VALUE>16</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="5dcb4398-9fff-4d61-adaa-1bd0f302ce67">\r
+ <SHORT-NAME>EcuM</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.2</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/EcuM</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="10544479-b26a-423e-9128-6ec9fa964dc0">\r
+ <SHORT-NAME>EcuMGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuM/EcuMGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMIncludeNvramMgr</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMGeneral/EcuMMainFunctionPeriod</DEFINITION-REF>\r
+ <VALUE>0.2</VALUE>\r
+ </FLOAT-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ae794f83-9b1d-47e4-a679-0ccb5f10e2de">\r
+ <SHORT-NAME>EcuMConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuM/EcuMConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMNvramReadallTimeout</DEFINITION-REF>\r
+ <VALUE>10.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMRunMinimumDuration</DEFINITION-REF>\r
+ <VALUE>10.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMNvramWriteallTimeout</DEFINITION-REF>\r
+ <VALUE>10.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="a8c969eb-1f1c-4af0-bddc-5217e8e04a0e">\r
+ <SHORT-NAME>User_1</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuM/EcuMConfiguration/EcuMUserConfig</DEFINITION-REF>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="11291481-dd5f-4a4a-aa43-f93b48fed3e6">\r
+ <SHORT-NAME>Os</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.34</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="191149da-cfb8-4bfd-a75c-47bd89a6710e">\r
+ <SHORT-NAME>OsOS</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsStackMonitoring</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsOS/OsStatus</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsUseGetServiceId</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsUseParameterAccess</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsUseResScheduler</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+ <VALUE>1000</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsInterruptStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsIdleStackSize</DEFINITION-REF>\r
+ <VALUE>512</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsNumberOfCores</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/ArcOsIsrMaxCount</DEFINITION-REF>\r
+ <VALUE>10</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsUseDebug</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugTask</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugAlarm</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugResource</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugScheduleTable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugEvent</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="13341f07-800c-42bb-92fc-142661b95d00">\r
+ <SHORT-NAME>OsHooks</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS/OsHooks</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsErrorHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsProtectionHook</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsShutdownHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="e6efe1be-ba6f-4725-87bc-9dcca88d0353">\r
+ <SHORT-NAME>StartupTask</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>10</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="1583c915-9447-44b1-94e3-ba9474adb449">\r
+ <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="6ba2f802-b7df-4086-9127-81afe7564afd">\r
+ <SHORT-NAME>StepTask</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepEvent</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="fadee99c-384c-45c7-80ad-bacf73ed4020">\r
+ <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="84a7ccc3-bbf0-4c38-99cc-8920f0405b93">\r
+ <SHORT-NAME>StepAlarm</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/Counter1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="2c60f4c3-3029-4976-bdc4-9373b380157f">\r
+ <SHORT-NAME>OsAlarmAutostart</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+ <VALUE>20</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+ <VALUE>ABSOLUTE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+ <VALUE>100</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ea35f8d3-85bb-4d74-95f7-b0abc8eb0179">\r
+ <SHORT-NAME>OsAlarmSetEvent</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepEvent</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="6c247e60-bd37-4aa6-87f8-82f65ce14c38">\r
+ <SHORT-NAME>Counter1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+ <VALUE>65535</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+ <VALUE>OS_TICK</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="2b3062b7-134f-4fa5-a7d7-688dd0b6c8e0">\r
+ <SHORT-NAME>OsApplication1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsApplication</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsApplication/ArcOsAppCoreId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsApplication/OsTrusted</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepAlarm</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppCounterRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/Counter1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StartupTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/MainFunctionAlarm</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/MainFunctionTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppAlarmRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/BlinkerAlarm</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsApplication/OsAppTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/BlinkerTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="6cb490b8-4cf0-4c24-a017-1cfc957da368">\r
+ <SHORT-NAME>OsApplicationHooks</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsApplication/OsApplicationHooks</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsApplication/OsApplicationHooks/OsAppErrorHook</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsApplication/OsApplicationHooks/OsAppShutdownHook</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsApplication/OsApplicationHooks/OsAppStartupHook</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ae9a5118-b552-4f22-af5a-a3912a537b5d">\r
+ <SHORT-NAME>StepEvent</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsEvent/ArcOsEventId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsEvent/ArcOsEventAutoMask</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f6b88c14-731f-4156-9dc2-b1bb542da0db">\r
+ <SHORT-NAME>MainFunctionTask</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="3d4a6633-3d19-4ecb-925d-f32c746f4587">\r
+ <SHORT-NAME>MainFunctionAlarm</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/Counter1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="28437fdb-6270-49f7-b169-03383189afed">\r
+ <SHORT-NAME>OsAlarmAutostart</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+ <VALUE>10</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+ <VALUE>ABSOLUTE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+ <VALUE>10</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="f4199712-bda0-4366-a22f-45747fc2d2e7">\r
+ <SHORT-NAME>OsAlarmActivateTask</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/MainFunctionTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7484ad59-feb8-4ee6-bc9a-abc3db67c360">\r
+ <SHORT-NAME>BlinkerTask</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="56902adb-d603-4873-a7aa-9d5c12b6db3e">\r
+ <SHORT-NAME>BlinkerAlarm</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/Counter1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="7e00037b-b9ed-442f-9936-c42d0273bedb">\r
+ <SHORT-NAME>OsAlarmAutostart</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+ <VALUE>100</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+ <VALUE>ABSOLUTE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+ <VALUE>1000</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="664ff53f-317a-459a-95b9-960fb78ec247">\r
+ <SHORT-NAME>OsAlarmActivateTask</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/BlinkerTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="0624bb57-bb42-489c-9567-dc90bab75fae">\r
+ <SHORT-NAME>PduR</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">3.0.8</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/PduR</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="44422252-693d-4c94-ba23-76d50eeeb495">\r
+ <SHORT-NAME>PduRGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRCanIfSupport</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRCanTpSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRComSupport</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRDcmSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/ArcPduRSoAdSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRFifoTxBufferSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRFrIfSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRFrTpSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRGatewayOperation</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRIPduMSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRLinIfSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRLinTpSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMemorySize</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMinimumRoutingLoModule</DEFINITION-REF>\r
+ <VALUE />\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMinimumRoutingLoRxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMinimumRoutingLoTxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMinimumRoutingUpModule</DEFINITION-REF>\r
+ <VALUE />\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMinimumRoutingUpRxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMinimumRoutingUpTxPduId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMulticastFromIfSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMulticastFromTpSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMulticastToIfSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRMulticastToTpSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRSbTxBufferSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/PduRZeroCostOperation</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/PduR/PduRGeneral/ArcPduRJ1939TpSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="04f55169-693a-4d64-a101-5523224617a0">\r
+ <SHORT-NAME>PduRGlobalConfig</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRConfigurationId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="59a054ff-2e09-44bc-8e52-5ba90998d9f1">\r
+ <SHORT-NAME>PduRRoutingTable</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="42532b49-e2e6-4f99-91ee-83a64d2e546b">\r
+ <SHORT-NAME>RX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/SduLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/TpChunkSize</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="7dd968af-e5aa-4d2e-9dfb-decb718c0f0d">\r
+ <SHORT-NAME>PduRDestination</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu/DestPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/RX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="be4f0d15-0613-41e0-873f-7e2c18d7da02">\r
+ <SHORT-NAME>PduRSrcPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/HandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/SrcPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/RX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="3893ecba-fb46-4035-bf7c-c5077b3b564c">\r
+ <SHORT-NAME>TX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/SduLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/TpChunkSize</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="9c7d7cf0-349f-4911-af22-11efc7410121">\r
+ <SHORT-NAME>PduRDestination</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu/DestPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqInd</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1d128ab5-c911-41d9-81b3-5adf28c3e979">\r
+ <SHORT-NAME>PduRSrcPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/HandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/SrcPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqInd</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="83753290-0c53-4f31-a48f-afca605f7af7">\r
+ <SHORT-NAME>FreqReq</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/SduLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/TpChunkSize</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="b78a0112-c98e-49b3-8a7e-ba4b69d83b06">\r
+ <SHORT-NAME>PduRDestination</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu/DestPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqReq</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="db4d39ca-4611-43c9-b89b-e35b050946ef">\r
+ <SHORT-NAME>PduRSrcPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/HandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/SrcPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/FreqReq</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="53b52528-ac15-4611-92d8-553e31394800">\r
+ <SHORT-NAME>FreqInd</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/SduLength</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/TpChunkSize</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="906dcad4-876a-4068-b66a-0fdcc8b3e80f">\r
+ <SHORT-NAME>PduRDestination</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRDestPdu/DestPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/TX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="d24a7b8a-0e70-4052-8f97-fda2569b13be">\r
+ <SHORT-NAME>PduRSrcPdu</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/HandleId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRRoutingTable/PduRRoutingPath/PduRSrcPdu/SrcPduRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/EcuC/PduCollection/TX_PDU</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="a0c72cc3-9346-4a57-806e-cabeca29d718">\r
+ <SHORT-NAME>PduRTpBufferTable</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRTpBufferTable</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/PduR/PduRGlobalConfig/PduRTpBufferTable/PduRMaxTpBufferNumber</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="becc6d09-546d-48bb-82ee-92271c4f6a24">\r
+ <SHORT-NAME>Rte</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">0.0.9</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Rte</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="f86a343a-11a0-4567-bc98-4525cf95a2c2">\r
+ <SHORT-NAME>RteGeneration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/RteGeneration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Rte/RteGeneration/RteCalibrationSupport</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Rte/RteGeneration/ArcGenerateWeakRunnableStubs</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/RteGeneration/ArcCalibrationFlashStartAddress</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Rte/RteGeneration/RteGenerationMode</DEFINITION-REF>\r
+ <VALUE />\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Rte/RteGeneration/RteMeasurementSupport</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Rte/RteGeneration/RteOptimizationMode</DEFINITION-REF>\r
+ <VALUE />\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/RteGeneration/RteVfbTrace</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <FUNCTION-NAME-VALUE>\r
+ <DEFINITION-REF DEST="FUNCTION-NAME-DEF">/ArcCore/Rte/RteGeneration/RteVfbTraceFunction</DEFINITION-REF>\r
+ <VALUE />\r
+ </FUNCTION-NAME-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="226f0243-a4d6-49ee-b53d-59506f0644be">\r
+ <SHORT-NAME>Calculator_prototypeInstance</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ArcGenerationEnabled</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ImplementationRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="SWC-IMPLEMENTATION">/rte_simple_lib/CalculatorKit/CalculatorImplementation</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <INSTANCE-REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="INSTANCE-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/SoftwareComponentInstanceRef</DEFINITION-REF>\r
+ <VALUE-IREF>\r
+ <VALUE-REF DEST="COMPONENT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Calculator_prototype</VALUE-REF>\r
+ </VALUE-IREF>\r
+ </INSTANCE-REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="38ba38ec-a0e2-45ea-8e33-bc2096adf7f2">\r
+ <SHORT-NAME>Multiply_RunnableMapping</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/ActivationOffset</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/PositionInTask</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/RTEEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="OPERATION-INVOKED-EVENT">/rte_simple_lib/CalculatorKit/CalculatorBehavior/InvokeCalculator</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ac9f3793-4d7b-4691-a456-07fa9e9c9c47">\r
+ <SHORT-NAME>Tester_prototypeInstance</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ArcGenerationEnabled</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ImplementationRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="SWC-IMPLEMENTATION">/rte_simple_lib/TesterKit/TesterImplementation</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <INSTANCE-REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="INSTANCE-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/SoftwareComponentInstanceRef</DEFINITION-REF>\r
+ <VALUE-IREF>\r
+ <VALUE-REF DEST="COMPONENT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Tester_prototype</VALUE-REF>\r
+ </VALUE-IREF>\r
+ </INSTANCE-REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="7841377a-7cb0-4cd3-8b50-bf78051ff1f5">\r
+ <SHORT-NAME>TesterRunnable_RunnableMapping</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/ActivationOffset</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/PositionInTask</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/RTEEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="TIMING-EVENT">/rte_simple_lib/TesterKit/TesterBehavior/StepTester</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/MappedToTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/UsedOsEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepEvent</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="6aef1937-cdd1-43db-9552-31c94f170cf5">\r
+ <SHORT-NAME>FreqReqRunnable_RunnableMapping</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/ActivationOffset</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/PositionInTask</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/RTEEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="DATA-RECEIVED-EVENT">/rte_simple_lib/TesterKit/TesterBehavior/RecFreqReq</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="ddd7699f-c755-47d4-a7c0-1c57a5660814">\r
+ <SHORT-NAME>Logger_prototypeInstance</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ArcGenerationEnabled</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ImplementationRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="SWC-IMPLEMENTATION">/rte_simple_lib/LoggerKit/LoggerImplementation</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <INSTANCE-REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="INSTANCE-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/SoftwareComponentInstanceRef</DEFINITION-REF>\r
+ <VALUE-IREF>\r
+ <VALUE-REF DEST="COMPONENT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Logger_prototype</VALUE-REF>\r
+ </VALUE-IREF>\r
+ </INSTANCE-REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="b5d323ea-4a98-40b9-9b93-e3052850e0bc">\r
+ <SHORT-NAME>LoggerRunnable_RunnableMapping</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/ActivationOffset</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/PositionInTask</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/RTEEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="TIMING-EVENT">/rte_simple_lib/LoggerKit/LoggerBehavior/StepLogger</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/MappedToTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/UsedOsEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepEvent</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7fd52427-487a-4900-81a9-39fcaf7c6949">\r
+ <SHORT-NAME>Logger2_prototypeInstance</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ArcGenerationEnabled</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/ImplementationRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="SWC-IMPLEMENTATION">/rte_simple_lib/Logger2Kit/Logger2Implementation</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <INSTANCE-REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="INSTANCE-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/SoftwareComponentInstanceRef</DEFINITION-REF>\r
+ <VALUE-IREF>\r
+ <VALUE-REF DEST="COMPONENT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Logger2_prototype</VALUE-REF>\r
+ </VALUE-IREF>\r
+ </INSTANCE-REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="6d1f4bbd-77cf-4adb-96f8-213914bad26d">\r
+ <SHORT-NAME>Logger2Runnable_RunnableMapping</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/ActivationOffset</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/PositionInTask</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="FOREIGN-REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/RTEEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="TIMING-EVENT">/rte_simple_lib/Logger2Kit/Logger2Behavior/StepLogger2</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/MappedToTaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepTask</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Rte/SwComponentInstance/RunnableEntityMapping/UsedOsEventRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Os/StepEvent</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="982b6a58-92e6-48a0-8c0c-b68e180a5ef1">\r
+ <SHORT-NAME>EcuC</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.0</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/EcuC</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="7421a3e1-2d8c-487e-af7e-c47270fd2f20">\r
+ <SHORT-NAME>PduCollection</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="c7d37e19-39d6-4b49-ae84-4190545a1109">\r
+ <SHORT-NAME>RX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection/Pdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/EcuC/PduCollection/Pdu/PduLength</DEFINITION-REF>\r
+ <VALUE>64</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="5d6ff393-113c-415d-b5c8-63024139e676">\r
+ <SHORT-NAME>TX_PDU</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection/Pdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/EcuC/PduCollection/Pdu/PduLength</DEFINITION-REF>\r
+ <VALUE>64</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="6c366b8f-6f59-4f1b-819b-3e0a5fcd3e46">\r
+ <SHORT-NAME>FreqReq</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection/Pdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/EcuC/PduCollection/Pdu/PduLength</DEFINITION-REF>\r
+ <VALUE>64</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7e3d1296-dbab-4ad3-b8da-d8057dcd4d54">\r
+ <SHORT-NAME>FreqInd</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection/Pdu</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/EcuC/PduCollection/Pdu/PduLength</DEFINITION-REF>\r
+ <VALUE>64</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="0a846f2a-3ae4-493b-8994-8951ca29090d">\r
+ <SHORT-NAME>Can</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.2</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Can</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="abb6d7c5-c8a9-40e1-b6b1-c51c226272aa">\r
+ <SHORT-NAME>CanConfigSet</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="a6db33eb-3669-4ded-873a-c2f18fe7f115">\r
+ <SHORT-NAME>Controller_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanController</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanBusoffProcessing</DEFINITION-REF>\r
+ <VALUE>INTERRUPT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerActivation</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerLoopback</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerBaudRate</DEFINITION-REF>\r
+ <VALUE>125</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanHWControllerId</DEFINITION-REF>\r
+ <VALUE>FLEXCAN_A</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerPropSeg</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerSeg1</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerSeg2</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanRxProcessing</DEFINITION-REF>\r
+ <VALUE>INTERRUPT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanTxProcessing</DEFINITION-REF>\r
+ <VALUE>INTERRUPT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanWakeupProcessing</DEFINITION-REF>\r
+ <VALUE>INTERRUPT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanErrorProcessing</DEFINITION-REF>\r
+ <VALUE>INTERRUPT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="cbd0de80-1099-4673-9f5b-6549c765b358">\r
+ <SHORT-NAME>Mask_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanController/CanFilterMask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanFilterMask/CanFilterMaskValue</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="65fe95e8-4bb8-4842-b956-be3a1fa58237">\r
+ <SHORT-NAME>HWObj_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanHandleType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanIdType</DEFINITION-REF>\r
+ <VALUE>STANDARD</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanIdValue</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanObjectType</DEFINITION-REF>\r
+ <VALUE>RECEIVE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/ArcCanNumMailboxes</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/ArcCanFIFO</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanControllerRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Can/CanConfigSet/Controller_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanFilterMaskRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Can/CanConfigSet/Controller_1/Mask_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="167fd448-f14a-4732-a146-2f520578d037">\r
+ <SHORT-NAME>HWObj_2</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanHandleType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanIdType</DEFINITION-REF>\r
+ <VALUE>STANDARD</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanIdValue</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanObjectType</DEFINITION-REF>\r
+ <VALUE>TRANSMIT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/ArcCanNumMailboxes</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/ArcCanFIFO</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanControllerRef</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Can/CanConfigSet/Controller_1</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7b2e3d7a-d0cb-4acd-8732-2ad2c3a050c3">\r
+ <SHORT-NAME>CanGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanGeneral/CanDevErrorDetection</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanGeneral/CanMultiplexedTransmission</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanGeneral/CanVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/Can/CanGeneral/CanErrorCbk</DEFINITION-REF>\r
+ <VALUE>CanIf_Arc_Error</VALUE>\r
+ </STRING-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="19115ed0-f3f0-4a6a-9d51-183494e82d84">\r
+ <SHORT-NAME>Mcu</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.3</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Mcu</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="ef6aa42e-f2d9-45a7-8a26-7e3d1507e36a">\r
+ <SHORT-NAME>McuGeneralConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuGeneralConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuPerformResetApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Mcu/McuGeneralConfiguration/McuVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="5c87b4e7-63a5-465d-aa15-f7fc64037013">\r
+ <SHORT-NAME>McuModuleConfiguration</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSrcFailureNotification</DEFINITION-REF>\r
+ <VALUE>DISABLED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuNumberOfMcuModes</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="DERIVED-INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuRamSectors</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuResetSetting</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="995355ae-8c54-474a-b7c6-8ca237e89af2">\r
+ <SHORT-NAME>McuClockSettingConfig</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig</DEFINITION-REF>\r
+ <REFERENCE-VALUES>\r
+ <REFERENCE-VALUE>\r
+ <DEFINITION-REF DEST="REFERENCE-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuDefaultClockReference</DEFINITION-REF>\r
+ <VALUE-REF DEST="CONTAINER">/rte_simple_mpc5567qrtech/Mcu/McuModuleConfiguration/McuClockSettingConfig/Clock</VALUE-REF>\r
+ </REFERENCE-VALUE>\r
+ </REFERENCE-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="8beda446-deaa-4522-8337-3a3e94e1c5f1">\r
+ <SHORT-NAME>Clock</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <FLOAT-VALUE>\r
+ <DEFINITION-REF DEST="FLOAT-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointFrequency</DEFINITION-REF>\r
+ <VALUE>0.0</VALUE>\r
+ </FLOAT-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEprediv</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllEmfd</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockReferencePoint/McuClockReferencePointPllErfd</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="abbec6bd-bfe2-4c2f-8949-e8793a33138b">\r
+ <SHORT-NAME>McuModeSettingConf</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuModeSettingConf</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Mcu/McuModuleConfiguration/McuModeSettingConf/McuMode</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="5f5f54b8-b64f-488d-b8ab-dc9e8831fd27">\r
+ <SHORT-NAME>Dio</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.0</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Dio</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="2d532b1a-3c04-42d9-bbcb-2925b38b6be0">\r
+ <SHORT-NAME>DioGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Dio/DioGeneral/DioDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Dio/DioGeneral/DioVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1f3dd181-fe91-4d89-87fe-42fd6ce7bf5f">\r
+ <SHORT-NAME>LED_PORT</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioPortId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <STRING-VALUE>\r
+ <DEFINITION-REF DEST="STRING-PARAM-DEF">/ArcCore/Dio/DioPort/ArcCoreDioPhysicalPort</DEFINITION-REF>\r
+ <VALUE>DIO_MPC5567_GENERIC_PORT</VALUE>\r
+ </STRING-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="c7540d44-ea56-4042-8a0a-097029c36fa3">\r
+ <SHORT-NAME>LED_CHANNEL</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Dio/DioPort/DioChannel</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Dio/DioPort/DioChannel/DioChannelId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="bfa628e5-168f-4481-8599-75fcd648f78a">\r
+ <SHORT-NAME>Port</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG />\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.2</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="52510056-3b2a-4757-9543-c23b404adae2">\r
+ <SHORT-NAME>PortConfigSet</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="645b91a2-820a-4f7b-81b8-4bb8187f8b81">\r
+ <SHORT-NAME>PortContainer_1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="92d1d78f-265b-4189-b17d-384b8a2164e7">\r
+ <SHORT-NAME>CNTXA</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>83</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="c0ffa3e0-0d86-4f20-803b-bbafab48da72">\r
+ <SHORT-NAME>CNRXA</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_IN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>84</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="3b730a79-e042-4c6b-86ec-337bec214ec3">\r
+ <SHORT-NAME>GPIO[0]</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinPullMode</DEFINITION-REF>\r
+ <VALUE>PULL_NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirection</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_OUT</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinDirectionChangeable</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinHysteresisEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinOpenDrainEnabled</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinSlewRate</DEFINITION-REF>\r
+ <VALUE>SLEW_RATE_MIN</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinLevelValue</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_LEVEL_LOW</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+ <VALUE>PORT_PIN_MODE_DIO</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7bc7ecbd-e09c-4122-94de-432c6f87d9bb">\r
+ <SHORT-NAME>PortGeneral</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortGeneral</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortDevErrorDetect</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortSetPinDirectionApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortSetPinModeApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortGeneral/PortVersionInfoApi</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ </ELEMENTS>\r
+ </AR-PACKAGE>\r
+ </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>\r
+\r
/* MPC55xx Reset Control Word(RCW) */\r
+#if defined(CFG_BOOT)\r
+flash(R) : ORIGIN = 0x0001c100, LENGTH = 2M\r
+#else \r
flash(R) : ORIGIN = 0x00000000, LENGTH = 2M\r
+#endif\r
ram(RW) : ORIGIN = 0x40000000, LENGTH = 0x014000\r
COMPILER?=cw\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
DEFAULT_CW_COMPILE= /opt/cw\r
+\r
+# Defines\r
+def-y += SRAM_SIZE=0xc000\r
+\r
+\r
COMPILER?=cw\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
DEFAULT_CW_COMPILE= /opt/cw\r
+\r
+# Defines\r
+def-y += SRAM_SIZE=0xc000\r
--- /dev/null
+\r
+BOOT_IMAGE_ADDR=0x20000\r
+BOOT_BLOB_LOAD_ADDR=0x20100\r
+BOOT_BLOB_START_ADDR=$(BOOT_BLOB_LOAD_ADDR)\r
# ARCH defines\r
ARCH=mpc55xx\r
ARCH_FAM=ppc\r
-ARCH_MCU=mpc5568\r
+ARCH_MCU=mpc5567\r
\r
# CFG (y/n) macros\r
-CFG=PPC BOOKE E200Z1 MPC55XX MPC5668 MPC5668G BRD_MPC5668_GKIT SPE\r
+CFG=PPC BOOKE E200Z6 MPC55XX MPC5567 BRD_MPC5567QRTECH SPE\r
+\r
+#CFG+=BOOT\r
\r
# What buildable modules does this board have, \r
# default or private\r
\r
# Memory + Peripherals\r
-MOD_AVAIL+=ADC DIO DMA CAN GPT LIN MCU PORT PWM WDG NVM MEMIF FEE FLS SPI EEP \r
+MOD_AVAIL+=ADC DIO DMA CAN GPT LIN MCU PORT PWM WDG NVM MEMIF FEE FLS \r
# System + Communication + Diagnostic\r
-MOD_AVAIL+=CANIF CANTP COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE\r
+MOD_AVAIL+=CANIF CANTP J1939TP COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE\r
# Network management\r
-MOD_AVAIL+=COMM NM CANNM CANSM EA \r
+MOD_AVAIL+=COMM NM CANNM CANSM\r
# Additional\r
-MOD_AVAIL+= RAMLOG TTY_T32\r
+MOD_AVAIL+=RAMLOG \r
# CRC\r
MOD_AVAIL+=CRC32 CRC16\r
# Required modules\r
# Default cross compiler\r
DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
\r
+# Defines\r
+def-y += SRAM_SIZE=0x94000\r
\r
VPATH += $(ROOTDIR)/examples\r
VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
-\r
+ \r
endif\r
\r
\r
\r
\r
\r
+\r
/* Flash sizes\r
* 5668, 2.0M\r
*/\r
-flash(R) : ORIGIN = 0x00000000, LENGTH = 2M\r
+#if defined(CFG_BOOT)\r
+flash(R) : ORIGIN = 0x00020100, LENGTH = 2M\r
/* Ram sizes\r
* 5668G: 512K + 80K\r
*/\r
+ #else\r
+flash(R) : ORIGIN = 0x00000000, LENGTH = 2M\r
+#endif\r
+ \r
+ \r
ram(RW) : ORIGIN = 0x40000000, LENGTH = 0x080000\r
<DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
<VALUE>PENDING</VALUE>\r
</ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
</PARAMETER-VALUES>\r
</CONTAINER>\r
<CONTAINER UUID="7dd06b07-796d-4fc1-ba0b-4f5181b6c9c8">\r
<DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
<VALUE>TRIGGERED</VALUE>\r
</ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
</PARAMETER-VALUES>\r
</CONTAINER>\r
<CONTAINER UUID="ae24e011-a990-4da9-b31a-922f4e9db3c8">\r
<DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
<VALUE>PENDING</VALUE>\r
</ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
</PARAMETER-VALUES>\r
</CONTAINER>\r
<CONTAINER UUID="19c577da-ea27-429d-91b9-43a72b575cab">\r
<DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
<VALUE>TRIGGERED</VALUE>\r
</ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
</PARAMETER-VALUES>\r
</CONTAINER>\r
<CONTAINER UUID="f51bb691-2289-4f69-9f43-e54fe0a555fb">\r
<DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
<VALUE>PENDING</VALUE>\r
</ENUMERATION-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComRxDataTimeoutAction</DEFINITION-REF>\r
+ <VALUE>NONE</VALUE>\r
+ </ENUMERATION-VALUE>\r
</PARAMETER-VALUES>\r
</CONTAINER>\r
</SUB-CONTAINERS>\r
</CONTAINERS>\r
</MODULE-CONFIGURATION>\r
</ELEMENTS>\r
- <SUB-PACKAGES>\r
- <AR-PACKAGE UUID="d6752ac1-8921-416a-b21a-90618507b8ec">\r
- <SHORT-NAME>GeneratedSystemSignals</SHORT-NAME>\r
- <ELEMENTS>\r
- <SYSTEM-SIGNAL UUID="621d2baf-b15a-4762-bdce-b3c4041fefd0">\r
- <SHORT-NAME>Arg1</SHORT-NAME>\r
- <INIT-VALUE-REF DEST="INTEGER-LITERAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/IntegerLiterals/Arg1InitValue/Arg1InitValueLiteral</INIT-VALUE-REF>\r
- <LENGTH>8</LENGTH>\r
- </SYSTEM-SIGNAL>\r
- <SYSTEM-SIGNAL UUID="2e984323-7a3d-4dcc-a8e4-b96b83ede7ff">\r
- <SHORT-NAME>ResultSig</SHORT-NAME>\r
- <INIT-VALUE-REF DEST="INTEGER-LITERAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/IntegerLiterals/ResultSigInitValue/ResultSigInitValueLiteral</INIT-VALUE-REF>\r
- <LENGTH>8</LENGTH>\r
- </SYSTEM-SIGNAL>\r
- <SYSTEM-SIGNAL UUID="cd67d3b0-05a7-4484-8a09-720f56e57b43">\r
- <SHORT-NAME>Arg2</SHORT-NAME>\r
- <INIT-VALUE-REF DEST="INTEGER-LITERAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/IntegerLiterals/Arg2InitValue/Arg2InitValueLiteral</INIT-VALUE-REF>\r
- <LENGTH>8</LENGTH>\r
- </SYSTEM-SIGNAL>\r
- <SYSTEM-SIGNAL UUID="f6e1d366-e5a5-4a15-b271-7d1ede75ff76">\r
- <SHORT-NAME>FreqIndSig</SHORT-NAME>\r
- <INIT-VALUE-REF DEST="INTEGER-LITERAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/IntegerLiterals/FreqIndSigInitValue/FreqIndSigInitValueLiteral</INIT-VALUE-REF>\r
- <LENGTH>32</LENGTH>\r
- </SYSTEM-SIGNAL>\r
- <SYSTEM-SIGNAL UUID="edbd6fdf-d43b-45f8-9416-a267a595460e">\r
- <SHORT-NAME>FreqReqSig</SHORT-NAME>\r
- <INIT-VALUE-REF DEST="INTEGER-LITERAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/IntegerLiterals/FreqReqSigInitValue/FreqReqSigInitValueLiteral</INIT-VALUE-REF>\r
- <LENGTH>32</LENGTH>\r
- </SYSTEM-SIGNAL>\r
- </ELEMENTS>\r
- <SUB-PACKAGES>\r
- <AR-PACKAGE>\r
- <SHORT-NAME>Data</SHORT-NAME>\r
- <ELEMENTS>\r
- <INTEGER-TYPE>\r
- <SHORT-NAME>UInt8</SHORT-NAME>\r
- <SW-DATA-DEF-PROPS />\r
- <LOWER-LIMIT INTERVAL-TYPE="CLOSED">0</LOWER-LIMIT>\r
- <UPPER-LIMIT INTERVAL-TYPE="CLOSED">255</UPPER-LIMIT>\r
- </INTEGER-TYPE>\r
- <INTEGER-TYPE>\r
- <SHORT-NAME>UInt16</SHORT-NAME>\r
- <SW-DATA-DEF-PROPS />\r
- <LOWER-LIMIT INTERVAL-TYPE="CLOSED">0</LOWER-LIMIT>\r
- <UPPER-LIMIT INTERVAL-TYPE="CLOSED">65535</UPPER-LIMIT>\r
- </INTEGER-TYPE>\r
- <INTEGER-TYPE>\r
- <SHORT-NAME>UInt32</SHORT-NAME>\r
- <SW-DATA-DEF-PROPS />\r
- <LOWER-LIMIT INTERVAL-TYPE="CLOSED">0</LOWER-LIMIT>\r
- <UPPER-LIMIT INTERVAL-TYPE="CLOSED">4294967295</UPPER-LIMIT>\r
- </INTEGER-TYPE>\r
- <INTEGER-TYPE>\r
- <SHORT-NAME>SInt8</SHORT-NAME>\r
- <SW-DATA-DEF-PROPS />\r
- <LOWER-LIMIT INTERVAL-TYPE="CLOSED">-128</LOWER-LIMIT>\r
- <UPPER-LIMIT INTERVAL-TYPE="CLOSED">127</UPPER-LIMIT>\r
- </INTEGER-TYPE>\r
- <INTEGER-TYPE>\r
- <SHORT-NAME>SInt16</SHORT-NAME>\r
- <SW-DATA-DEF-PROPS />\r
- <LOWER-LIMIT INTERVAL-TYPE="CLOSED">-32768</LOWER-LIMIT>\r
- <UPPER-LIMIT INTERVAL-TYPE="CLOSED">32767</UPPER-LIMIT>\r
- </INTEGER-TYPE>\r
- <INTEGER-TYPE>\r
- <SHORT-NAME>SInt32</SHORT-NAME>\r
- <SW-DATA-DEF-PROPS />\r
- <LOWER-LIMIT INTERVAL-TYPE="CLOSED">-2147483648</LOWER-LIMIT>\r
- <UPPER-LIMIT INTERVAL-TYPE="CLOSED">2147483647</UPPER-LIMIT>\r
- </INTEGER-TYPE>\r
- </ELEMENTS>\r
- <SUB-PACKAGES>\r
- <AR-PACKAGE>\r
- <SHORT-NAME>IntegerLiterals</SHORT-NAME>\r
- <ELEMENTS>\r
- <CONSTANT-SPECIFICATION>\r
- <SHORT-NAME>Arg1InitValue</SHORT-NAME>\r
- <VALUE>\r
- <INTEGER-LITERAL UUID="080df379-fc64-4efd-bbc9-d32088afb7cc">\r
- <SHORT-NAME>Arg1InitValueLiteral</SHORT-NAME>\r
- <VALUE>5</VALUE>\r
- </INTEGER-LITERAL>\r
- </VALUE>\r
- </CONSTANT-SPECIFICATION>\r
- <CONSTANT-SPECIFICATION>\r
- <SHORT-NAME>ResultSigInitValue</SHORT-NAME>\r
- <VALUE>\r
- <INTEGER-LITERAL UUID="d1928d1c-e6e5-460f-9dbd-7ae73ed5ee8b">\r
- <SHORT-NAME>ResultSigInitValueLiteral</SHORT-NAME>\r
- <VALUE>0</VALUE>\r
- </INTEGER-LITERAL>\r
- </VALUE>\r
- </CONSTANT-SPECIFICATION>\r
- <CONSTANT-SPECIFICATION>\r
- <SHORT-NAME>Arg2InitValue</SHORT-NAME>\r
- <VALUE>\r
- <INTEGER-LITERAL UUID="a958db62-4b46-4945-bf1e-361f33bac22a">\r
- <SHORT-NAME>Arg2InitValueLiteral</SHORT-NAME>\r
- <VALUE>3</VALUE>\r
- </INTEGER-LITERAL>\r
- </VALUE>\r
- </CONSTANT-SPECIFICATION>\r
- <CONSTANT-SPECIFICATION>\r
- <SHORT-NAME>FreqIndSigInitValue</SHORT-NAME>\r
- <VALUE>\r
- <INTEGER-LITERAL UUID="2336cf72-d52c-411b-b500-8853d0f429e0">\r
- <SHORT-NAME>FreqIndSigInitValueLiteral</SHORT-NAME>\r
- <VALUE>0</VALUE>\r
- </INTEGER-LITERAL>\r
- </VALUE>\r
- </CONSTANT-SPECIFICATION>\r
- <CONSTANT-SPECIFICATION>\r
- <SHORT-NAME>FreqReqSigInitValue</SHORT-NAME>\r
- <VALUE>\r
- <INTEGER-LITERAL UUID="51e36755-d899-4001-be53-0ac283f450b6">\r
- <SHORT-NAME>FreqReqSigInitValueLiteral</SHORT-NAME>\r
- <VALUE>1000</VALUE>\r
- </INTEGER-LITERAL>\r
- </VALUE>\r
- </CONSTANT-SPECIFICATION>\r
- </ELEMENTS>\r
- </AR-PACKAGE>\r
- </SUB-PACKAGES>\r
- </AR-PACKAGE>\r
- </SUB-PACKAGES>\r
- </AR-PACKAGE>\r
- </SUB-PACKAGES>\r
</AR-PACKAGE>\r
</TOP-LEVEL-PACKAGES>\r
</AUTOSAR>\r
* @param str Pointer to the string to write to\r
* @param base The base\r
*/\r
-void itoa(int value, char* str, int base) {\r
+char * itoa(int value, char* str, int base) {\r
xtoa(value, str, base, (value < 0));\r
+ return str;\r
}\r
\r
#include "PduR_Dcm.h"\r
#include "ComStack_Types.h"\r
\r
+#define USE_DEBUG_PRINTF\r
+\r
+#include"debug.h"\r
// State variable\r
typedef enum\r
{\r
case SID_READ_DATA_BY_IDENTIFIER:\r
DspUdsReadDataByIdentifier(msgData.pduRxData, msgData.pduTxData);\r
break;\r
-\r
+ \r
+ case SID_READ_MEMORY_BY_ADDRESS:\r
+ DspUdsReadMemoryByAddress(msgData.pduRxData, msgData.pduTxData);\r
+ break;\r
+ \r
+ case SID_WRITE_MEMORY_BY_ADDRESS:\r
+ DspUdsWriteMemoryByAddress(msgData.pduRxData, msgData.pduTxData);\r
+ break;\r
+ \r
case SID_READ_SCALING_DATA_BY_IDENTIFIER:\r
DspUdsReadScalingDataByIdentifier(msgData.pduRxData, msgData.pduTxData);\r
break;\r
break;\r
\r
case SID_READ_DATA_BY_PERIODIC_IDENTIFIER:\r
+ DspReadDataByPeriodicIdentifier(msgData.pduRxData, msgData.pduTxData);\r
+ break;\r
+ \r
case SID_DYNAMICALLY_DEFINE_DATA_IDENTIFIER:\r
+ DspDynamicallyDefineDataIdentifier(msgData.pduRxData, msgData.pduTxData);\r
+ break;\r
+ \r
case SID_INPUT_OUTPUT_CONTROL_BY_IDENTIFIER:\r
+ DspIOControlByDataIdentifier(msgData.pduRxData, msgData.pduTxData);\r
+ break;\r
+ \r
default:\r
/* Non implemented service */\r
createAndSendNcr(DCM_E_SERVICENOTSUPPORTED);\r
\r
switch (runtime->sessionControl) {\r
case DCM_DEFAULT_SESSION: // "default".\r
+ /* to set the dsp buffer to default*/\r
+ DspInit();\r
break;\r
\r
case DCM_PROGRAMMING_SESSION:\r
\r
default:\r
DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_CHANGE_DIAGNOSTIC_SESSION_ID, DCM_E_PARAM);\r
- DEBUG(DEBUG_MEDIUM, "Old session invalid");\r
+ //DEBUG(DEBUG_MEDIUM, "Old session invalid");\r
break;\r
}\r
\r
\r
default:\r
DET_REPORTERROR(MODULE_ID_DCM, 0, DCM_CHANGE_DIAGNOSTIC_SESSION_ID, DCM_E_PARAM);\r
- DEBUG(DEBUG_MEDIUM, "New session invalid");\r
+ //DEBUG(DEBUG_MEDIUM, "New session invalid");\r
break;\r
}\r
}\r
const Dcm_DslProtocolRowType *protocolRow = NULL;\r
Dcm_DslRunTimeProtocolParametersType *runtime = NULL;\r
\r
- DEBUG( DEBUG_MEDIUM, "DslDsdProcessingDone rxPduIdRef=%d\n", rxPduIdRef);\r
+// DEBUG( DEBUG_MEDIUM, "DslDsdProcessingDone rxPduIdRef=%d\n", rxPduIdRef);\r
\r
if (findRxPduIdParentConfigurationLeafs(rxPduIdRef, &protocolRx, &mainConnection, &connection, &protocolRow, &runtime)) {\r
imask_t state;\r
runtime->externalTxBufferStatus = DSD_PENDING_RESPONSE_SIGNALED; /** @req DCM114 */\r
break;\r
case DSD_TX_RESPONSE_SUPPRESSED: /** @req DCM238 */\r
- DEBUG( DEBUG_MEDIUM, "DslDsdProcessingDone called with DSD_TX_RESPONSE_SUPPRESSED.\n");\r
+ //DEBUG( DEBUG_MEDIUM, "DslDsdProcessingDone called with DSD_TX_RESPONSE_SUPPRESSED.\n");\r
releaseExternalRxTxBuffersHelper(rxPduIdRef);\r
break;\r
default:\r
- DEBUG( DEBUG_MEDIUM, "Unknown response result from DslDsdProcessingDone!\n");\r
+ //DEBUG( DEBUG_MEDIUM, "Unknown response result from DslDsdProcessingDone!\n");\r
break;\r
}\r
Irq_Restore(state);\r
}\r
\r
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-// Implements 'void Dcm_MainFunction(void)' for DSL.\r
+// Implements 'void DslInternal_ResponseOnOneDataByPeriodicId(uint8 PericodID)' for simulator a periodic did data.\r
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
\r
+void DslInternal_ResponseOnOneDataByPeriodicId(uint8 PericodID)\r
+{\r
+ const Dcm_DslProtocolRowType *protocolRowEntry;\r
+ Dcm_DslRunTimeProtocolParametersType *runtime = NULL;\r
+ PduInfoType *pPeriodData;\r
+ protocolRowEntry = DCM_Config.Dsl->DslProtocol->DslProtocolRowList;\r
+ while (protocolRowEntry->Arc_EOL == FALSE) \r
+ {\r
+ runtime = protocolRowEntry->DslRunTimeProtocolParameters;\r
+ if(runtime != NULL) // find the runtime\r
+ {\r
+ DslProvideRxBufferToPdur(runtime->diagReqestRxPduId, 3, (const PduInfoType **)&pPeriodData);\r
+ pPeriodData->SduDataPtr[0] = 0x2a;\r
+ pPeriodData->SduDataPtr[1] = 0;\r
+ pPeriodData->SduDataPtr[2] = PericodID;\r
+ pPeriodData->SduLength = 3;\r
+ DslRxIndicationFromPduR(0, NTFRSLT_OK);\r
+ break;\r
+ }\r
+ protocolRowEntry++;\r
+ }\r
+}\r
+\r
+\r
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+// Implements 'void Dcm_MainFunction(void)' for DSL.\r
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
void DslMain(void) {\r
const Dcm_DslProtocolRowType *protocolRowEntry;\r
const Dcm_DslProtocolTimingRowType *timeParams = NULL;\r
//DEBUG( DEBUG_MEDIUM, "state NOT_IN_USE!\n");\r
break;\r
case PROVIDED_TO_DSD: {\r
- DEBUG( DEBUG_MEDIUM, "debug_count=%d\n", debug_count);\r
DECREMENT(runtime->stateTimeoutCount);\r
if (runtime->stateTimeoutCount == 0) {\r
- DEBUG( DEBUG_MEDIUM, "State PROVIDED_TO_DSD timed out!", debug_count);\r
timeParams = protocolRowEntry->DslProtocolTimeLimit;\r
runtime->stateTimeoutCount = DCM_CONVERT_MS_TO_MAIN_CYCLES(timeParams->TimStrP2ServerMax); /* Reinitiate timer, see 9.2.2. */\r
if (DCM_Config.Dsl->DslDiagResp != NULL) {\r
releaseExternalRxTxBuffers(protocolRowEntry, runtime);\r
}\r
} else {\r
- DEBUG( DEBUG_MEDIUM, "Not configured to send response pending, now sending general reject!\n");\r
+ // DEBUG( DEBUG_MEDIUM, "Not configured to send response pending, now sending general reject!\n");\r
sendResponse(protocolRowEntry, DCM_E_GENERALREJECT);\r
releaseExternalRxTxBuffers(protocolRowEntry, runtime);\r
}\r
// Make sure that response pending or general reject have not been issued,\r
// if so we can not transmit to PduR because we would not know from where\r
// the Tx confirmation resides later.\r
- DEBUG( DEBUG_MEDIUM, "state DSD_PENDING_RESPONSE_SIGNALED!\n");\r
+ // DEBUG( DEBUG_MEDIUM, "state DSD_PENDING_RESPONSE_SIGNALED!\n");\r
if (runtime->localTxBuffer.status == NOT_IN_USE) { // Make sure that no TxConfirm could be sent by the local buffer and mixed up with this transmission.\r
const Dcm_DslProtocolRxType *protocolRx = NULL;\r
const Dcm_DslMainConnectionType *mainConnection = NULL;\r
\r
if (findRxPduIdParentConfigurationLeafs(runtime->diagReqestRxPduId, &protocolRx, &mainConnection, &connection, &protocolRow, &runtime)) {\r
const PduIdType txPduId = mainConnection->DslProtocolTx->DcmDslProtocolTxPduId;\r
- DEBUG( DEBUG_MEDIUM, "runtime->externalTxBufferStatus enter state DCM_TRANSMIT_SIGNALED.\n" );\r
+ // DEBUG( DEBUG_MEDIUM, "runtime->externalTxBufferStatus enter state DCM_TRANSMIT_SIGNALED.\n" );\r
runtime->externalTxBufferStatus = DCM_TRANSMIT_SIGNALED;\r
transmitResult = PduR_DcmTransmit(txPduId, &runtime->diagnosticResponseFromDsd); /** @req DCM237 *//* Will trigger PduR (CanTP) to call DslProvideTxBuffer(). */\r
if (transmitResult != E_OK) {\r
// TODO: What to do here?\r
}\r
} else {\r
- DEBUG( DEBUG_MEDIUM, "***** WARNING, THIS IS UNEXPECTED !!! ********.\n" );\r
+ // DEBUG( DEBUG_MEDIUM, "***** WARNING, THIS IS UNEXPECTED !!! ********.\n" );\r
const PduIdType txPduId = protocolRowEntry->DslConnection->DslMainConnection->DslProtocolTx->DcmDslProtocolTxPduId;\r
- DEBUG( DEBUG_MEDIUM, "runtime->externalTxBufferStatus enter state DSD_PENDING_RESPONSE_SIGNALED.\n", txPduId);\r
+ // DEBUG( DEBUG_MEDIUM, "runtime->externalTxBufferStatus enter state DSD_PENDING_RESPONSE_SIGNALED.\n", txPduId);\r
runtime->externalTxBufferStatus = DCM_TRANSMIT_SIGNALED;\r
- DEBUG( DEBUG_MEDIUM, "Calling PduR_DcmTransmit with txPduId = %d from DslMain\n", txPduId);\r
+ // DEBUG( DEBUG_MEDIUM, "Calling PduR_DcmTransmit with txPduId = %d from DslMain\n", txPduId);\r
transmitResult = PduR_DcmTransmit(txPduId, &runtime->diagnosticResponseFromDsd); /** @req DCM237 *//* Will trigger PduR (CanTP) to call DslProvideTxBuffer(). */\r
if (transmitResult != E_OK) {\r
// TODO: What to do here?\r
const Dcm_DslProtocolRowType *protocolRow = NULL;\r
Dcm_DslRunTimeProtocolParametersType *runtime = NULL;\r
imask_t state;\r
-\r
- DEBUG( DEBUG_MEDIUM, "DslProvideRxBufferToPdur(dcmRxPduId=%d) called!\n", dcmRxPduId);\r
+// DEBUG( DEBUG_MEDIUM, "DslProvideRxBufferToPdur(dcmRxPduId=%d) called!\n", dcmRxPduId); \r
Irq_Save(state);\r
if (findRxPduIdParentConfigurationLeafs(dcmRxPduId, &protocolRx, &mainConnection, &connection, &protocolRow, &runtime)) {\r
const Dcm_DslBufferType *externalRxBuffer = protocolRow->DslProtocolRxBufferID;\r
if (externalRxBuffer->pduInfo.SduLength >= tpSduLength) { /** @req DCM443 */\r
if ((runtime->externalRxBufferStatus == NOT_IN_USE) && (externalRxBuffer->externalBufferRuntimeData->status == BUFFER_AVAILABLE)) {\r
- DEBUG( DEBUG_MEDIUM, "External buffer available!\n");\r
+ // DEBUG( DEBUG_MEDIUM, "External buffer available!\n");\r
// ### EXTERNAL BUFFER IS AVAILABLE; GRAB IT AND REMEBER THAT WE OWN IT! ###\r
externalRxBuffer->externalBufferRuntimeData->status = BUFFER_BUSY;\r
runtime->diagnosticRequestFromTester.SduDataPtr = externalRxBuffer->pduInfo.SduDataPtr;\r
runtime->externalRxBufferStatus = PROVIDED_TO_PDUR; /** @req DCM342 */\r
ret = BUFREQ_OK;\r
} else {\r
- DEBUG( DEBUG_MEDIUM, "Local buffer available!\n");\r
if (runtime->externalRxBufferStatus == PROVIDED_TO_DSD) {\r
// ### EXTERNAL BUFFER IS IN USE BY THE DSD, TRY TO USE LOCAL BUFFER! ###\r
if (runtime->localRxBuffer.status == NOT_IN_USE) {\r
runtime->stateTimeoutCount = DCM_CONVERT_MS_TO_MAIN_CYCLES(timeParams->TimStrP2ServerMax); /* See 9.2.2. */\r
runtime->externalRxBufferStatus = PROVIDED_TO_DSD; /** @req DCM241 */\r
if (runtime->externalTxBufferStatus == NOT_IN_USE) {\r
- DEBUG( DEBUG_MEDIUM, "External Tx buffer available, we can pass it to DSD.\n");\r
+ // DEBUG( DEBUG_MEDIUM, "External Tx buffer available, we can pass it to DSD.\n");\r
} else {\r
- DEBUG( DEBUG_MEDIUM, "External buffer not available, a response is being transmitted?\n");\r
+ //DEBUG( DEBUG_MEDIUM, "External buffer not available, a response is being transmitted?\n");\r
}\r
runtime->externalTxBufferStatus = PROVIDED_TO_DSD; /** @req DCM241 */\r
runtime->responsePendingCount = DCM_Config.Dsl->DslDiagResp->DslDiagRespMaxNumRespPend;\r
runtime->diagnosticResponseFromDsd.SduDataPtr = protocolRow->DslProtocolTxBufferID->pduInfo.SduDataPtr;\r
runtime->diagnosticResponseFromDsd.SduLength = protocolRow->DslProtocolTxBufferID->pduInfo.SduLength;\r
- DEBUG( DEBUG_MEDIUM, "DsdDslDataIndication(DcmDslProtocolTxPduId=%d, dcmRxPduId=%d)\n", mainConnection->DslProtocolTx->DcmDslProtocolTxPduId, dcmRxPduId);\r
+ // DEBUG( DEBUG_MEDIUM, "DsdDslDataIndication(DcmDslProtocolTxPduId=%d, dcmRxPduId=%d)\n", mainConnection->DslProtocolTx->DcmDslProtocolTxPduId, dcmRxPduId);\r
runtime->diagReqestRxPduId = dcmRxPduId;\r
+ // DEBUG(DEBUG_MEDIUM,"\n\n runtime->diagnosticRequestFromTester.SduDataPtr[2] %x\n\n ",runtime->diagnosticRequestFromTester.SduDataPtr[2]);\r
DsdDslDataIndication( // qqq: We are inside a critical section.\r
&(runtime->diagnosticRequestFromTester),\r
protocolRow->DslProtocolSIDTable, /** @req DCM035 */\r
Dcm_DslRunTimeProtocolParametersType *runtime = NULL;\r
\r
(void)length; // Currently not used, this is only to remove compilation warnings\r
- DEBUG( DEBUG_MEDIUM, "DslProvideTxBuffer=%d\n", dcmTxPduId);\r
+// DEBUG( DEBUG_MEDIUM, "DslProvideTxBuffer=%d\n", dcmTxPduId);\r
if (findTxPduIdParentConfigurationLeafs(dcmTxPduId, &protocolTx, &mainConnection, &connection, &protocolRow, &runtime)) {\r
switch (runtime->externalTxBufferStatus) { // ### EXTERNAL TX BUFFER ###\r
case DCM_TRANSMIT_SIGNALED: {\r
break;\r
}\r
default:\r
- DEBUG( DEBUG_MEDIUM, "DCM_TRANSMIT_SIGNALED was not signaled in the external buffer\n");\r
+ //DEBUG( DEBUG_MEDIUM, "DCM_TRANSMIT_SIGNALED was not signaled in the external buffer\n");\r
ret = BUFREQ_NOT_OK;\r
break;\r
}\r
break;\r
}\r
default:\r
- DEBUG( DEBUG_MEDIUM, "DCM_TRANSMIT_SIGNALED was not signaled for the local buffer either\n");\r
+ //DEBUG( DEBUG_MEDIUM, "DCM_TRANSMIT_SIGNALED was not signaled for the local buffer either\n");\r
ret = BUFREQ_NOT_OK;\r
break;\r
}\r
Dcm_DslRunTimeProtocolParametersType *runtime = NULL;\r
imask_t state;\r
\r
- DEBUG( DEBUG_MEDIUM, "DslTxConfirmation=%d, result=%d\n", dcmTxPduId, result);\r
+// DEBUG( DEBUG_MEDIUM, "DslTxConfirmation=%d, result=%d\n", dcmTxPduId, result);\r
if (findTxPduIdParentConfigurationLeafs(dcmTxPduId, &protocolTx, &mainConnection, &connection, &protocolRow, &runtime)) {\r
boolean externalBufferReleased = FALSE;\r
\r
startS3SessionTimer(runtime, protocolRow); /** @req DCM141 */\r
releaseExternalRxTxBuffers(protocolRow, runtime); /** @req DCM118 *//** @req DCM352 *//** @req DCM353 *//** @req DCM354 */\r
externalBufferReleased = TRUE;\r
- DEBUG( DEBUG_MEDIUM, "Released external buffer OK!\n");\r
+ // DEBUG( DEBUG_MEDIUM, "Released external buffer OK!\n");\r
DsdDataConfirmation(mainConnection->DslProtocolTx->DcmDslProtocolTxPduId, result); /** @req DCM117 *//** @req DCM235 */\r
break;\r
}\r
if (!externalBufferReleased) {\r
switch (runtime->localTxBuffer.status) { // ### LOCAL TX BUFFER ###\r
case PROVIDED_TO_PDUR:\r
- DEBUG( DEBUG_MEDIUM, "Released local buffer buffer OK!\n");\r
+ // DEBUG( DEBUG_MEDIUM, "Released local buffer buffer OK!\n");\r
runtime->localTxBuffer.status = DCM_IDLE;\r
break;\r
default:\r
- DEBUG( DEBUG_MEDIUM, "WARNING! DslTxConfirmation could not release external or local buffer!\n");\r
+ // DEBUG( DEBUG_MEDIUM, "WARNING! DslTxConfirmation could not release external or local buffer!\n");\r
break;\r
}\r
}\r
/** @req DCM039 */ /** @req DCM038 */ /** @req DCM269 */\r
/** @req DCM271 */ /** @req DCM274 */ /** @req DCM275 */ /** @req DCM424 */\r
/** @req DCM007 */\r
-\r
#include <string.h>\r
#include "Dcm.h"\r
#include "Dcm_Internal.h"\r
#include "Mcu.h"\r
#endif\r
\r
-#define ZERO_SUB_FUNCTION 0x00\r
-\r
/*\r
* Macros\r
*/\r
+#define ZERO_SUB_FUNCTION 0x00\r
+#define DCM_FORMAT_LOW_MASK 0x0F\r
+#define DCM_FORMAT_HIGH_MASK 0xF0\r
+#define DCM_MEMORY_ADDRESS_MASK 0xFFFFFF\r
+#define DCM_DID_HIGH_MASK 0xFF00 \r
+#define DCM_DID_LOW_MASK 0xFF\r
+#define DCM_PERODICDID_HIHG_MASK 0xF200\r
+#define SID_AND_ALFID_LEN2 0x2\r
+#define SID_AND_ALFID_LEN4 0x4\r
+#define SID_AND_ALFID_LEN5 0x5\r
+#define SID_AND_ALFID_LEN6 0x6\r
+#define SID_AND_ALFID_LEN7 0x7\r
+\r
#define BYTES_TO_DTC(hb, mb, lb) (((uint32)(hb) << 16) | ((uint32)(mb) << 8) | (uint32)(lb))\r
#define DTC_HIGH_BYTE(dtc) (((uint32)(dtc) >> 16) & 0xFFu)\r
#define DTC_MID_BYTE(dtc) (((uint32)(dtc) >> 8) & 0xFFu)\r
} DspUdsEcuResetDataType;\r
\r
static DspUdsEcuResetDataType dspUdsEcuResetData;\r
-\r
+static boolean dspWritePending;\r
\r
typedef struct {\r
boolean reqInProgress;\r
\r
static DspUdsSecurityAccessDataType dspUdsSecurityAccesData;\r
\r
+typedef enum{\r
+ DCM_MEMORY_UNUSED,\r
+ DCM_MEMORY_READ,\r
+ DCM_MEMORY_WRITE,\r
+ DCM_MEMORY_FAILED \r
+}Dcm_DspMemoryStateType;\r
+Dcm_DspMemoryStateType dspMemoryState;\r
+\r
+typedef enum{\r
+ DCM_DDD_SOURCE_DEFAULT,\r
+ DCM_DDD_SOURCE_DID,\r
+ DCM_DDD_SOURCE_ADDRESS\r
+}Dcm_DspDDDTpyeID;\r
+\r
+typedef struct{\r
+ uint32 PDidTxCounter;\r
+ uint32 PDidTxCounterNumber;\r
+ uint8 PeriodicDid;\r
+}Dcm_pDidType;/* a type to save the periodic DID and cycle */\r
+\r
+typedef struct{\r
+ Dcm_pDidType dspPDid[DCM_LIMITNUMBER_PERIODDATA]; /*a buffer to save the periodic DID and cycle */\r
+ uint8 PDidNr; /* note the number of periodic DID is used */\r
+}Dsp_pDidRefType;\r
+\r
+Dsp_pDidRefType dspPDidRef; \r
+\r
+typedef struct{\r
+ uint8 formatOrPosition; /*note the formate of address and size*/\r
+ uint32 SourceAddressOrDid; /*note the memory address */\r
+ uint16 Size; /*note the memory size */\r
+ Dcm_DspDDDTpyeID DDDTpyeID;\r
+}Dcm_DspDDDSourceType;\r
+\r
+typedef struct{\r
+ uint16 DynamicallyDid;\r
+ Dcm_DspDDDSourceType DDDSource[DCM_MAX_DDDSOURCE_NUMBER];\r
+}\r
+Dcm_DspDDDType;\r
+\r
+Dcm_DspDDDType dspDDD[DCM_MAX_DDD_NUMBER];\r
+\r
+\r
+/*\r
+ * * static Function\r
+ */\r
+\r
+static boolean lookupReadMemory(uint32 memoryAddress,\r
+ uint8 memoryAddressFormat,\r
+ uint32 memorySize,\r
+ const Dcm_DspMemoryIdInfo **MemoryPtr);\r
+\r
+static boolean LookupDDD(uint16 didNr, const Dcm_DspDDDType **DDid);\r
+\r
+static boolean checkWriteMemoryByAddress(boolean useId,\r
+ uint32 memoryAddress,\r
+ uint8 memoryAddressFormat,\r
+ uint32 memorySize,\r
+ const Dcm_DspMemoryIdInfo *dspMemory);\r
+\r
+\r
+/*\r
+* end \r
+*/\r
\r
void DspInit(void)\r
{\r
dspUdsSecurityAccesData.reqInProgress = FALSE;\r
dspUdsEcuResetData.resetPending = FALSE;\r
+\r
+ dspWritePending = FALSE;\r
+ dspMemoryState=DCM_MEMORY_UNUSED;\r
+ /* clear periodic send buffer */\r
+ memset(&dspPDidRef,0,sizeof(dspPDidRef));\r
+ /* clear dynamically Did buffer */\r
+ memset(&dspDDD[0],0,sizeof(dspDDD)); \r
}\r
\r
+void DspMemoryMainFunction(void)\r
+{\r
+ Dcm_ReturnWriteMemoryType WriteRet;\r
+ Dcm_ReturnReadMemoryType ReadRet;\r
+ switch(dspMemoryState)\r
+ {\r
+ case DCM_MEMORY_UNUSED:\r
+ break;\r
+ case DCM_MEMORY_READ:\r
+ ReadRet = Dcm_ReadMemory(DCM_PENDING,0,0,0,0);\r
+ if(ReadRet == DCM_READ_OK)/*asynchronous writing is ok*/\r
+ {\r
+ DsdDspProcessingDone(DCM_E_POSITIVERESPONSE);\r
+ dspMemoryState = DCM_MEMORY_UNUSED;\r
+ }\r
+ if(ReadRet == DCM_READ_FAILED)\r
+ {\r
+ dspMemoryState = DCM_MEMORY_FAILED;\r
+ }\r
+ break;\r
+ case DCM_MEMORY_WRITE:\r
+ WriteRet = Dcm_WriteMemory(DCM_PENDING,0,0,0,0);\r
+ if(WriteRet == DCM_WRITE_OK)/*asynchronous writing is ok*/\r
+ {\r
+ DsdDspProcessingDone(DCM_E_POSITIVERESPONSE);\r
+ dspMemoryState = DCM_MEMORY_UNUSED;\r
+ }\r
+ if(WriteRet == DCM_WRITE_FAILED)\r
+ {\r
+ dspMemoryState = DCM_MEMORY_FAILED;\r
+ }\r
+ break;\r
+ case DCM_MEMORY_FAILED:\r
+ DsdDspProcessingDone(DCM_E_GENERALPROGRAMMINGFAILURE);\r
+ dspMemoryState = DCM_MEMORY_UNUSED;\r
+ break;\r
+ \r
+ }\r
+}\r
+void DspPeriodicDIDMainFunction()\r
+{\r
+ uint8 i;\r
+ boolean sentResponseThisLoop = FALSE;\r
\r
+ for(i = 0;i < dspPDidRef.PDidNr; i++)\r
+ {\r
+ if(dspPDidRef.dspPDid[i].PDidTxCounterNumber > dspPDidRef.dspPDid[i].PDidTxCounter)\r
+ {\r
+ dspPDidRef.dspPDid[i].PDidTxCounter++;\r
+ }\r
+ else\r
+ {\r
+ if( sentResponseThisLoop == FALSE ) {\r
+ dspPDidRef.dspPDid[i].PDidTxCounter = 0;\r
+ /*AutoSar DCM 8.10.5 */\r
+ DslInternal_ResponseOnOneDataByPeriodicId(dspPDidRef.dspPDid[i].PeriodicDid);\r
+ sentResponseThisLoop = TRUE;\r
+ }\r
+ else {\r
+ /* Don't do anything - PDid will be sent next loop */\r
+ }\r
+ } \r
+ }\r
+}\r
void DspMain(void)\r
{\r
-\r
+ DspMemoryMainFunction();\r
+ DspPeriodicDIDMainFunction();\r
}\r
\r
\r
\r
DsdDspProcessingDone(responseCode);\r
}\r
+/**\r
+** This Function for check the pointer of Dynamically Did Sourced by Did buffer using a didNr\r
+**/\r
+static boolean LookupDDD(uint16 didNr, const Dcm_DspDDDType **DDid ) \r
+{\r
+ uint8 i;\r
+ boolean ret = FALSE;\r
+ const Dcm_DspDDDType* DDidptr = &dspDDD[0];\r
+ \r
+ for(i = 0;((i < DCM_MAX_DDD_NUMBER) && (ret == FALSE)); i++)\r
+ {\r
+ if(DDidptr->DynamicallyDid == didNr)\r
+ {\r
+ ret = TRUE;\r
+ \r
+ }\r
+ else\r
+ {\r
+ DDidptr++;\r
+ }\r
+ }\r
+ if(ret == TRUE)\r
+ {\r
+ *DDid = DDidptr;\r
+ }\r
\r
+ return ret;\r
+}\r
\r
static boolean lookupDid(uint16 didNr, const Dcm_DspDidType **didPtr)\r
{\r
return responseCode;\r
}\r
\r
+/**\r
+** This Function for read Dynamically Did data buffer Sourced by Memory address using a didNr\r
+**/\r
+static Dcm_NegativeResponseCodeType readDDDData( Dcm_DspDDDType *PDidPtr, uint8 *Data,uint16 *Length)\r
+{\r
+ uint8 i;\r
+ uint8 dataCount;\r
+ uint8 AddressFormat;\r
+ uint16 SourceDataLength = 0;\r
+ const Dcm_DspMemoryIdInfo *SourceMemoryInfoptr = NULL;\r
+ const Dcm_DspDidType *SourceDidPtr = NULL;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ *Length = 0;\r
+\r
+ for(i = 0;(i < DCM_MAX_DDDSOURCE_NUMBER) && (PDidPtr->DDDSource[i].formatOrPosition != 0)\r
+ &&(responseCode == DCM_E_POSITIVERESPONSE);i++)\r
+ {\r
+ if(PDidPtr->DDDSource[i].DDDTpyeID == DCM_DDD_SOURCE_ADDRESS)\r
+ {\r
+\r
+ AddressFormat = PDidPtr->DDDSource[i].formatOrPosition&DCM_FORMAT_HIGH_MASK >> 4;\r
+ if(TRUE == lookupReadMemory(PDidPtr->DDDSource[i].SourceAddressOrDid,AddressFormat,\r
+ PDidPtr->DDDSource[i].Size, &SourceMemoryInfoptr))\r
+ {\r
+ if(DspCheckSecurityLevel(SourceMemoryInfoptr->pReadMemoryInfo->pSecurityLevel) != TRUE)\r
+ {\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ Dcm_ReadMemory(DCM_INITIAL,SourceMemoryInfoptr->MemoryIdValue,\r
+ PDidPtr->DDDSource[i].SourceAddressOrDid,\r
+ PDidPtr->DDDSource[i].Size,\r
+ (Data + *Length));\r
+ *Length = *Length + PDidPtr->DDDSource[i].Size;\r
+ }\r
+ }\r
+ else if(PDidPtr->DDDSource[i].DDDTpyeID == DCM_DDD_SOURCE_DID)\r
+ {\r
+ \r
+ if(lookupDid(PDidPtr->DDDSource[i].SourceAddressOrDid,&SourceDidPtr) == TRUE)\r
+ {\r
+ if(DspCheckSecurityLevel(SourceDidPtr->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSecurityLevelRef) != TRUE)\r
+ {\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ if(SourceDidPtr->DspDidInfoRef->DspDidFixedLength == TRUE)\r
+ {\r
+ SourceDataLength = SourceDidPtr->DspDidSize;\r
+ }\r
+ else\r
+ {\r
+ if(SourceDidPtr->DspDidReadDataLengthFnc != NULL)\r
+ {\r
+ SourceDidPtr->DspDidReadDataLengthFnc(&SourceDataLength);\r
+ }\r
+ }\r
+ if((SourceDidPtr->DspDidReadDataFnc != NULL) && (SourceDataLength != 0) && (DCM_E_POSITIVERESPONSE == responseCode))\r
+ {\r
+ \r
+ SourceDidPtr->DspDidReadDataFnc((Data + *Length));\r
+ for(dataCount = 0;dataCount < SourceDataLength;dataCount++)\r
+ {\r
+ if(dataCount < PDidPtr->DDDSource[i].Size)\r
+ {\r
+ *(Data + *Length + dataCount) = *(Data + *Length + dataCount + PDidPtr->DDDSource[i].formatOrPosition - 1);\r
+ }\r
+ else\r
+ {\r
+ *(Data + *Length + dataCount) = 0; \r
+ }\r
+ }\r
+ *Length = *Length + PDidPtr->DDDSource[i].Size;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ \r
+ responseCode = DCM_E_REQUESTOUTOFRANGE; \r
+ }\r
+ }\r
+ return responseCode;\r
+}\r
+\r
void DspUdsReadDataByIdentifier(const PduInfoType *pduRxData, PduInfoType *pduTxData)\r
{\r
/** @req DCM253 */\r
uint16 nrOfDids;\r
uint16 didNr;\r
const Dcm_DspDidType *didPtr = NULL;\r
-\r
+ Dcm_DspDDDType *DDidPtr=NULL;\r
uint16 txPos = 1;\r
uint16 i;\r
+ uint16 Length;\r
\r
if ( ((pduRxData->SduLength - 1) % 2) == 0 ) {\r
nrOfDids = (pduRxData->SduLength - 1) / 2;\r
\r
- for (i = 0; (i < nrOfDids) && (responseCode == DCM_E_POSITIVERESPONSE); i++) {\r
- didNr = (uint16)((uint16)pduRxData->SduDataPtr[1+(i*2)] << 8) + pduRxData->SduDataPtr[2+(i*2)];\r
+ for (i = 0; (i < nrOfDids) && (responseCode == DCM_E_POSITIVERESPONSE); i++) \r
+ {\r
+ didNr = (uint16)((uint16)pduRxData->SduDataPtr[1 + (i * 2)] << 8) + pduRxData->SduDataPtr[2 + (i * 2)];\r
if (lookupDid(didNr, &didPtr)) { /** @req DCM438 */\r
responseCode = readDidData(didPtr, pduTxData, &txPos);\r
}\r
- else { // DID not found\r
+\r
+ else if(LookupDDD(didNr,(const Dcm_DspDDDType **)&DDidPtr) == TRUE)\r
+ {\r
+ /*DCM 651,DCM 652*/\r
+ pduTxData->SduDataPtr[txPos] = (DDidPtr->DynamicallyDid>>8) & 0xFF;\r
+ txPos++;\r
+ pduTxData->SduDataPtr[txPos] = (uint8)(DDidPtr->DynamicallyDid & 0xFF);\r
+ txPos++;\r
+ responseCode = readDDDData(DDidPtr,&(pduTxData->SduDataPtr[txPos]), &Length);\r
+ txPos = txPos + Length;\r
+ }\r
+\r
+ else\r
+ { // DID not found\r
responseCode = DCM_E_REQUESTOUTOFRANGE;\r
}\r
}\r
if (result == E_OK) {\r
if (didLen == writeDidLen) { /** @req DCM473 */\r
result = didPtr->DspDidWriteDataFnc(&pduRxData->SduDataPtr[3], (uint8)didLen, &errorCode); /** @req DCM395 */\r
- if ((result != E_OK) || (errorCode != DCM_E_POSITIVERESPONSE)) {\r
+ if ((result != E_OK) && (errorCode == DCM_E_POSITIVERESPONSE)) {\r
responseCode = DCM_E_CONDITIONSNOTCORRECT;\r
}\r
}\r
}\r
\r
\r
+static boolean CheckReadMemoryByAddress( boolean useId,uint32 memoryAddress,\r
+ uint8 memoryAddressFormat,\r
+ uint32 memorySize,\r
+ const Dcm_DspMemoryIdInfo *dspMemory)\r
+{\r
+ boolean ret = FALSE;\r
+ uint8 MemoryId;\r
+\r
+ if(useId == FALSE)\r
+ {\r
+ /*@req DCM493*/\r
+ if((memoryAddress >= dspMemory->pReadMemoryInfo->MemoryAddressLow)\r
+ && (memoryAddress <= dspMemory->pReadMemoryInfo->MemoryAddressHigh)\r
+ && (memoryAddress + memorySize - 1 <= dspMemory->pReadMemoryInfo->MemoryAddressHigh))\r
+ {\r
+ ret = TRUE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ MemoryId = (uint8)(memoryAddress >> ((memoryAddressFormat - 1)*8));\r
+ memoryAddress = (uint32)(memoryAddress & DCM_MEMORY_ADDRESS_MASK);\r
+\r
+ if((MemoryId == dspMemory->MemoryIdValue)&&\r
+ (memoryAddress >= dspMemory->pReadMemoryInfo->MemoryAddressLow)\r
+ && (memoryAddress <= dspMemory->pReadMemoryInfo->MemoryAddressHigh)\r
+ && (memoryAddress + memorySize - 1 <= dspMemory->pReadMemoryInfo->MemoryAddressHigh))\r
+ {\r
+ ret = TRUE;\r
+ }\r
+ }\r
+ \r
+ return ret;\r
+}\r
+\r
+static boolean lookupReadMemory(uint32 memoryAddress,\r
+ uint8 memoryAddressFormat,\r
+ uint32 memorySize,\r
+ const Dcm_DspMemoryIdInfo **MemoryInfoPtr)\r
+{\r
+ uint8 i;\r
+ boolean memoryFound = FALSE;\r
+ const Dcm_DspMemoryIdInfo *dspMemoryInfo = DCM_Config.Dsp->DspMemory->DspMemoryIdInfo;\r
+\r
+ for(i = 0; (dspMemoryInfo->Arc_EOL == FALSE) && (memoryFound == FALSE); i++)\r
+ {\r
+ if(TRUE == CheckReadMemoryByAddress(DCM_Config.Dsp->DspMemory->DcmDspUseMemoryId,memoryAddress,memoryAddressFormat,memorySize,dspMemoryInfo))\r
+ {\r
+ memoryFound = TRUE;\r
+ }\r
+ else\r
+ {\r
+ dspMemoryInfo++;\r
+ }\r
+ }\r
+ if (memoryFound == TRUE)\r
+ {\r
+ *MemoryInfoPtr = dspMemoryInfo;\r
+ }\r
+ \r
+ return memoryFound;\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType readMemoryData( Dcm_OpStatusType *OpStatus,\r
+ const Dcm_DspMemoryIdInfo *MemoryPtr,\r
+ uint32 MemoryAddress,\r
+ uint32 MemorySize,\r
+ PduInfoType *pduTxData)\r
+{\r
+ Dcm_ReturnReadMemoryType ReadRet;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ ReadRet = Dcm_ReadMemory(*OpStatus,MemoryPtr->MemoryIdValue,\r
+ MemoryAddress,\r
+ MemorySize,\r
+ &pduTxData->SduDataPtr[1]);\r
+ if(DCM_READ_FAILED == ReadRet)\r
+ {\r
+ responseCode = DCM_E_GENERALPROGRAMMINGFAILURE; /*@req Dcm644*/\r
+ }\r
+ if (DCM_READ_PENDING == ReadRet)\r
+ {\r
+ *OpStatus = DCM_READ_PENDING;\r
+ } \r
+ return responseCode;\r
+}\r
+\r
+/*@req Dcm442,DCM492*/\r
+void DspUdsReadMemoryByAddress(const PduInfoType *pduRxData, PduInfoType *pduTxData)\r
+{\r
+ typedef struct{\r
+ uint32 MemoryAddressStart; /* low address of a memory block to read or write*/\r
+ uint32 MemoryIdValue; /* memory ID to read or write uint used by parameter */\r
+ const Dcm_DspMemoryIdInfo *MemoryIdConfigPtr; \r
+ Dcm_NegativeResponseCodeType ResponseCode; \r
+ uint8 MemorySizeFormat;\r
+ uint8 MemoryAddressFormat;\r
+ uint32 MemorySize;\r
+ uint16 MessageLength;\r
+ }DspUdsReadMemoryByAddressType; /*the typed used for SID read memory by address*/\r
+ uint8 i;\r
+ DspUdsReadMemoryByAddressType dspReadMemoryByAddress;\r
+ Dcm_OpStatusType OpStatus = 0;\r
+ dspReadMemoryByAddress.MemoryAddressStart = 0;\r
+ dspReadMemoryByAddress.MemorySize = 0;\r
+ dspReadMemoryByAddress.MemoryIdConfigPtr = NULL;\r
+ dspReadMemoryByAddress.ResponseCode = DCM_E_POSITIVERESPONSE;\r
+ dspReadMemoryByAddress.MemorySizeFormat = ((uint8)(pduRxData->SduDataPtr[1] & DCM_FORMAT_HIGH_MASK)) >> 4; /*@req UDS_REQ_0x23_1 & UDS_REQ_0x23_5*/\r
+ dspReadMemoryByAddress.MemoryAddressFormat = ((uint8)(pduRxData->SduDataPtr[1])) & 0x0Fu; /*@req UDS_REQ_0x23_1 & UDS_REQ_0x23_5*/\r
+\r
+ if((dspReadMemoryByAddress.MemoryAddressFormat == 0)||(dspReadMemoryByAddress.MemorySizeFormat == 0))\r
+ {\r
+ dspReadMemoryByAddress.ResponseCode = DCM_E_REQUESTOUTOFRANGE; /*UDS_REQ_0x23_10*/\r
+ }\r
+ else\r
+ {\r
+ dspReadMemoryByAddress.MessageLength = (uint16)(dspReadMemoryByAddress.MemoryAddressFormat + dspReadMemoryByAddress.MemorySizeFormat + SID_AND_ALFID_LEN2);\r
+ if(dspReadMemoryByAddress.MessageLength == (uint16)(pduRxData->SduLength))\r
+ {\r
+ /*take start address out */\r
+ for(i = 0; i < dspReadMemoryByAddress.MemoryAddressFormat; i++)\r
+ {\r
+ dspReadMemoryByAddress.MemoryAddressStart <<= 8;\r
+ dspReadMemoryByAddress.MemoryAddressStart += (uint32)(pduRxData->SduDataPtr[SID_AND_ALFID_LEN2 + i]);\r
+ }\r
+\r
+ /*take value of MemorySize out */\r
+ for(i = 0; i < dspReadMemoryByAddress.MemorySizeFormat; i++)\r
+ {\r
+ dspReadMemoryByAddress.MemorySize <<= 8;\r
+ dspReadMemoryByAddress.MemorySize += (uint32)(pduRxData->SduDataPtr[2 + i + dspReadMemoryByAddress.MemoryAddressFormat]);\r
+ }\r
+ if(dspReadMemoryByAddress.MemorySize < DCM_PROTOCAL_TP_MAX_LENGTH)\r
+ {\r
+ if(TRUE == lookupReadMemory(dspReadMemoryByAddress.MemoryAddressStart,\r
+ dspReadMemoryByAddress.MemoryAddressFormat,\r
+ dspReadMemoryByAddress.MemorySize,\r
+ &dspReadMemoryByAddress.MemoryIdConfigPtr))\r
+ {\r
+ if (DspCheckSecurityLevel(dspReadMemoryByAddress.MemoryIdConfigPtr->pReadMemoryInfo->pSecurityLevel) == TRUE)\r
+ {\r
+ dspReadMemoryByAddress.ResponseCode = readMemoryData(&OpStatus,dspReadMemoryByAddress.MemoryIdConfigPtr,\r
+ dspReadMemoryByAddress.MemoryAddressStart,\r
+ dspReadMemoryByAddress.MemorySize,pduTxData);/*@req UDS_REQ_0x23_9*/\r
+ \r
+ }\r
+ else\r
+ {\r
+ dspReadMemoryByAddress.ResponseCode = DCM_E_SECUTITYACCESSDENIED;/*@req UDS_REQ_0x23_11,@req DCM494*/\r
+ }\r
+ }\r
+ else\r
+ {\r
+ dspReadMemoryByAddress.ResponseCode = DCM_E_REQUESTOUTOFRANGE; /*@req UDS_REQ_0x23_7,UDS_REQ_0x23_8*/\r
+ }\r
+ }\r
+ else\r
+ {\r
+ dspReadMemoryByAddress.ResponseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ dspReadMemoryByAddress.ResponseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT; /*@req UDS_REQ_0x23_6*/\r
+ }\r
+ }\r
+ if(DCM_E_POSITIVERESPONSE == dspReadMemoryByAddress.ResponseCode)\r
+ {\r
+ pduTxData->SduLength = 1 + dspReadMemoryByAddress.MemorySize;\r
+ if(OpStatus == DCM_READ_PENDING)\r
+ {\r
+ dspMemoryState = DCM_MEMORY_READ;\r
+ }\r
+ else\r
+ {\r
+ DsdDspProcessingDone(DCM_E_POSITIVERESPONSE);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ DsdDspProcessingDone(dspReadMemoryByAddress.ResponseCode);\r
+ }\r
+}\r
+\r
+static boolean checkWriteMemoryByAddress(boolean useId,uint32 memoryAddress,\r
+ uint8 memoryAddressFormat,\r
+ uint32 memorySize,\r
+ const Dcm_DspMemoryIdInfo *dspMemory)\r
+{\r
+ boolean ret = FALSE;\r
+ uint8 MemoryId;\r
+ \r
+ if(useId == FALSE)\r
+ {\r
+ if((memoryAddress >= dspMemory->pWriteMemoryInfo->MemoryAddressLow)\r
+ && (memoryAddress <= dspMemory->pWriteMemoryInfo->MemoryAddressHigh)\r
+ && (memoryAddress + memorySize - 1 <= dspMemory->pWriteMemoryInfo->MemoryAddressHigh))\r
+ {\r
+ ret = TRUE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ MemoryId = (uint8)(memoryAddress >> ((memoryAddressFormat - 1)*8));\r
+ memoryAddress = memoryAddress & DCM_MEMORY_ADDRESS_MASK;\r
+\r
+ if((MemoryId == dspMemory->MemoryIdValue) &&\r
+ (memoryAddress >= dspMemory->pWriteMemoryInfo->MemoryAddressLow)\r
+ && (memoryAddress <= dspMemory->pWriteMemoryInfo->MemoryAddressHigh)\r
+ && (memoryAddress + memorySize -1 <= dspMemory->pWriteMemoryInfo->MemoryAddressHigh))\r
+ {\r
+ ret = TRUE;\r
+ }\r
+\r
+ }\r
+ \r
+ return ret;\r
+}\r
+\r
+static boolean lookupWriteMemory(uint32 memoryAddress,\r
+ uint8 memoryAddressFormat,\r
+ uint32 memorySize,\r
+ const Dcm_DspMemoryIdInfo **MemoryIdConfigPtr)\r
+{\r
+ uint8 i;\r
+ const Dcm_DspMemoryIdInfo *dspMemoryInfo = DCM_Config.Dsp->DspMemory->DspMemoryIdInfo;\r
+ boolean memoryFound = FALSE;\r
+\r
+ for(i = 0;(dspMemoryInfo->Arc_EOL == FALSE) && (memoryFound == FALSE);i++)\r
+ {\r
+ if(TRUE == checkWriteMemoryByAddress(DCM_Config.Dsp->DspMemory->DcmDspUseMemoryId, memoryAddress,memoryAddressFormat,memorySize,dspMemoryInfo))\r
+ {\r
+ memoryFound = TRUE;\r
+ }\r
+ else\r
+ {\r
+ dspMemoryInfo++;\r
+ }\r
+ }\r
+ if (memoryFound == TRUE)\r
+ {\r
+ *MemoryIdConfigPtr = dspMemoryInfo;\r
+ }\r
+ \r
+ return memoryFound;\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType writeMemoryData(Dcm_OpStatusType* OpStatus,\r
+ const Dcm_DspMemoryIdInfo *MemoryIdConfigPtr,\r
+ uint32 MemoryAddress,\r
+ uint32 MemorySize,\r
+ uint8 *SourceData)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ Dcm_ReturnWriteMemoryType writeRet;\r
+ writeRet = Dcm_WriteMemory(*OpStatus,\r
+ MemoryIdConfigPtr->MemoryIdValue,\r
+ MemoryAddress,\r
+ MemorySize,\r
+ SourceData);\r
+ if(DCM_READ_FAILED == writeRet)\r
+ {\r
+ responseCode = DCM_E_GENERALPROGRAMMINGFAILURE; /*@req UDS_REQ_0X3D_16,DCM643*/\r
+ }\r
+ else if(DCM_WRITE_PENDING == writeRet)\r
+ {\r
+ *OpStatus = DCM_PENDING;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_POSITIVERESPONSE;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+void DspUdsWriteMemoryByAddress(const PduInfoType* pduRxData, PduInfoType* pduTxData)\r
+{\r
+ typedef struct{\r
+ uint32 MemoryAddressStart;\r
+ uint32 MemoryIdValue;\r
+ const Dcm_DspMemoryIdInfo *MemoryIdConfigPtr;\r
+ Dcm_NegativeResponseCodeType ResponseCode;\r
+ uint8 MemorySizeFormat;\r
+ uint8 MemoryAddressFormat;\r
+ uint32 MemorySize ;\r
+ uint16 MessageLength;\r
+ }DspUdsWriteMemoryType;\r
+ uint8 i;\r
+ DspUdsWriteMemoryType dspUdsWriteMemory;\r
+ Dcm_OpStatusType OpStatus = DCM_INITIAL;\r
+ dspUdsWriteMemory.MemoryAddressStart = 0;\r
+ dspUdsWriteMemory.MemoryIdConfigPtr = NULL;\r
+ dspUdsWriteMemory.ResponseCode = DCM_E_POSITIVERESPONSE;\r
+ dspUdsWriteMemory.MemorySizeFormat = ((uint8)(pduRxData->SduDataPtr[1] & DCM_FORMAT_HIGH_MASK)) >> 4; /*@req UDS_REQ_0x3D_3 & UDS_REQ_0x3D_5*/\r
+ dspUdsWriteMemory.MemoryAddressFormat = ((uint8)pduRxData->SduDataPtr[1]) & DCM_FORMAT_LOW_MASK; /*@req UDS_REQ_0x3D_3& UDS_REQ_0x3D_4*/\r
+ dspUdsWriteMemory.MemorySize = 0;\r
+\r
+ if((dspUdsWriteMemory.MemoryAddressFormat == 0) || (dspUdsWriteMemory.MemorySizeFormat == 0)) /*@req UDS_REQ_0x3D_14*/\r
+ {\r
+ dspUdsWriteMemory.ResponseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ else\r
+ {\r
+ /*take value of MemorySize out */\r
+ for(i = 0; i < dspUdsWriteMemory.MemorySizeFormat; i++)\r
+ {\r
+ dspUdsWriteMemory.MemorySize <<= 8;\r
+ dspUdsWriteMemory.MemorySize += (uint32)(pduRxData->SduDataPtr[2 + i +dspUdsWriteMemory.MemoryAddressFormat]);\r
+ }\r
+ dspUdsWriteMemory.MessageLength = (uint16)(2 + dspUdsWriteMemory.MemoryAddressFormat + dspUdsWriteMemory.MemorySizeFormat + dspUdsWriteMemory.MemorySize);\r
+ if(dspUdsWriteMemory.MessageLength == pduRxData->SduLength)\r
+ {\r
+ /*take Start Address out */\r
+ for(i = 0; i < dspUdsWriteMemory.MemoryAddressFormat; i++)\r
+ {\r
+ dspUdsWriteMemory.MemoryAddressStart <<= 8;\r
+ dspUdsWriteMemory.MemoryAddressStart += (uint32)(pduRxData->SduDataPtr[2 + i]);\r
+ }\r
+ if(TRUE == lookupWriteMemory(dspUdsWriteMemory.MemoryAddressStart,\r
+ dspUdsWriteMemory.MemoryAddressFormat,\r
+ dspUdsWriteMemory.MemorySize,\r
+ &dspUdsWriteMemory.MemoryIdConfigPtr))\r
+ {\r
+ if (DspCheckSecurityLevel(dspUdsWriteMemory.MemoryIdConfigPtr->pReadMemoryInfo->pSecurityLevel) == TRUE)\r
+ {\r
+ dspUdsWriteMemory.ResponseCode = writeMemoryData(&OpStatus,\r
+ dspUdsWriteMemory.MemoryIdConfigPtr, \r
+ dspUdsWriteMemory.MemoryAddressStart,\r
+ dspUdsWriteMemory.MemorySize,\r
+ &pduRxData->SduDataPtr[2 + dspUdsWriteMemory.MemoryAddressFormat + dspUdsWriteMemory.MemorySizeFormat]);\r
+ }\r
+ else\r
+ {\r
+ dspUdsWriteMemory.ResponseCode = DCM_E_SECUTITYACCESSDENIED; /*@req UDS_REQ_0X3D_15,Dcm490*/\r
+ }\r
+ }\r
+ else\r
+ {\r
+ dspUdsWriteMemory.ResponseCode = DCM_E_REQUESTOUTOFRANGE; /*@req UDS_REQ_0x3D_11,UDS_REQ_0x3D_12,Dcm489*/\r
+ }\r
+ }\r
+ else\r
+ {\r
+ dspUdsWriteMemory.ResponseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;/*@req UDS_REQ_0x3D_9*/\r
+ } \r
+ }\r
+ if(DCM_E_POSITIVERESPONSE == dspUdsWriteMemory.ResponseCode)\r
+ {\r
+ pduTxData->SduLength = 2 + dspUdsWriteMemory.MemorySizeFormat + dspUdsWriteMemory.MemoryAddressFormat;\r
+ pduTxData->SduDataPtr[1] = pduRxData->SduDataPtr[1];\r
+ for(i = 0; i < dspUdsWriteMemory.MemorySizeFormat + dspUdsWriteMemory.MemoryAddressFormat; i++)\r
+ {\r
+ pduTxData->SduDataPtr[2 + i] = pduRxData->SduDataPtr[2 + i];\r
+ if(OpStatus != DCM_PENDING)\r
+ {\r
+ DsdDspProcessingDone(dspUdsWriteMemory.ResponseCode);\r
+ }\r
+ else\r
+ {\r
+ dspMemoryState=DCM_MEMORY_WRITE;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ DsdDspProcessingDone(dspUdsWriteMemory.ResponseCode);\r
+ }\r
+}\r
+\r
+static boolean checkPeriodicIdentifierBuffer(uint8 PeriodicDid,uint8 Length,uint8 *postion)\r
+{\r
+ uint8 i;\r
+ boolean ret = FALSE;\r
+ for(i = 0;(i < Length) && (ret == FALSE);i++)\r
+ {\r
+ if(PeriodicDid == dspPDidRef.dspPDid[i].PeriodicDid)\r
+ {\r
+ ret = TRUE;\r
+ *postion = i;\r
+ }\r
+ }\r
+ \r
+ return ret;\r
+}\r
+\r
+static void ClearPeriodicIdentifierBuffer(uint8 BufferEnd,uint8 postion)\r
+{\r
+ dspPDidRef.dspPDid[postion].PeriodicDid = dspPDidRef.dspPDid[BufferEnd ].PeriodicDid;\r
+ dspPDidRef.dspPDid[postion].PDidTxCounter = dspPDidRef.dspPDid[BufferEnd].PDidTxCounter;\r
+ dspPDidRef.dspPDid[postion].PDidTxCounterNumber = dspPDidRef.dspPDid[BufferEnd].PDidTxCounterNumber;\r
+ dspPDidRef.dspPDid[BufferEnd].PeriodicDid = 0;\r
+ dspPDidRef.dspPDid[BufferEnd].PDidTxCounter = 0;\r
+ dspPDidRef.dspPDid[BufferEnd ].PDidTxCounterNumber = 0;\r
+}\r
\r
+static Dcm_NegativeResponseCodeType readPeriodDidData(const Dcm_DspDidType *PDidPtr, uint8 *Data,uint16 *Length)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ if ((PDidPtr->DspDidInfoRef->DspDidAccess.DspDidRead != NULL) \r
+ && (PDidPtr->DspDidConditionCheckReadFnc != NULL) \r
+ && (PDidPtr->DspDidReadDataFnc != NULL) ) \r
+ { \r
+ if (DspCheckSessionLevel(PDidPtr->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSessionRef)) \r
+ { \r
+ if (DspCheckSecurityLevel(PDidPtr->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSecurityLevelRef)) \r
+ {\r
+ Std_ReturnType result = E_NOT_OK;\r
+ Dcm_NegativeResponseCodeType errorCode = DCM_E_POSITIVERESPONSE;\r
+ result = PDidPtr->DspDidConditionCheckReadFnc(&errorCode);\r
+ if ((result == E_OK) && (errorCode == DCM_E_POSITIVERESPONSE))\r
+ {\r
+ result = E_NOT_OK;\r
+ if (PDidPtr->DspDidInfoRef->DspDidFixedLength)\r
+ { \r
+ *Length= PDidPtr->DspDidSize;\r
+ result = E_OK;\r
+ }\r
+ else\r
+ {\r
+ if(PDidPtr->DspDidReadDataLengthFnc!=NULL)\r
+ {\r
+ result = PDidPtr->DspDidReadDataLengthFnc(Length);\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_GENERALREJECT;\r
+ }\r
+ }\r
+ if (result == E_OK) \r
+ {\r
+ result = PDidPtr->DspDidReadDataFnc(Data);\r
+ if (result != E_OK)\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ return responseCode;\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType DspSavePeriodicData(uint16 didNr, uint32 periodicTransmitCounter,uint8 PdidBufferNr)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ const Dcm_DspDidType *SourceDid = NULL;\r
+ Dcm_DspDDDType *DDidPtr = NULL;\r
+\r
+ if (TRUE == lookupDid(didNr, &SourceDid))\r
+ {\r
+ if(DspCheckSessionLevel(SourceDid->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSessionRef) == TRUE)\r
+ {\r
+ if(DspCheckSecurityLevel(SourceDid->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSecurityLevelRef) == TRUE)\r
+ {\r
+ Std_ReturnType result = E_NOT_OK;\r
+ Dcm_NegativeResponseCodeType errorCode = DCM_E_POSITIVERESPONSE;\r
+ \r
+ if(SourceDid->DspDidConditionCheckReadFnc != NULL)\r
+ {\r
+ result = SourceDid->DspDidConditionCheckReadFnc(&errorCode);\r
+ }\r
+ if ((result != E_OK) || (errorCode != DCM_E_POSITIVERESPONSE))\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if((SourceDid->DspDidInfoRef->DspDidFixedLength!=TRUE) && (SourceDid->DspDidReadDataLengthFnc == NULL))\r
+ {\r
+ responseCode = DCM_E_GENERALREJECT;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else if(LookupDDD(didNr, (const Dcm_DspDDDType **)&DDidPtr) == TRUE)\r
+ {\r
+ responseCode = DCM_E_POSITIVERESPONSE;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ dspPDidRef.dspPDid[PdidBufferNr].PeriodicDid = (uint8)didNr & DCM_DID_LOW_MASK;\r
+ dspPDidRef.dspPDid[PdidBufferNr].PDidTxCounter = 0;\r
+ dspPDidRef.dspPDid[PdidBufferNr].PDidTxCounterNumber = periodicTransmitCounter;\r
+ }\r
+ return responseCode;\r
+}\r
+static void ClearPeriodicIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData )\r
+{\r
+ uint16 PdidNumber;\r
+ uint8 PDidLowByte;\r
+ uint8 PdidPostion;\r
+ uint8 i;\r
+ if( pduRxData->SduDataPtr[1] == DCM_PERIODICTRANSMIT_STOPSENDING_MODE )\r
+ {\r
+ PdidNumber = pduRxData->SduLength - 2;\r
+ for(i = 0;i < PdidNumber;i++)\r
+ {\r
+ PDidLowByte = pduRxData->SduDataPtr[2];\r
+ if(checkPeriodicIdentifierBuffer(PDidLowByte,dspPDidRef.PDidNr,&PdidPostion) == TRUE)\r
+ {\r
+ dspPDidRef.PDidNr--;\r
+ ClearPeriodicIdentifierBuffer(dspPDidRef.PDidNr, PdidPostion);\r
+ \r
+ } \r
+ }\r
+ pduTxData->SduLength = 1;\r
+ }\r
+}\r
+/*\r
+ DESCRIPTION:\r
+ UDS Service 0x2a - Read Data By Periodic Identifier\r
+*/\r
+void DspReadDataByPeriodicIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ /** @req DCM254 */\r
+ uint8 PDidLowByte;\r
+ uint16 PdidNumber;\r
+ uint8 PdidPostion;\r
+ uint16 i;\r
+ uint8 PdidBufferNr;\r
+ uint32 periodicTransmitCounter;\r
+ uint16 DataLength;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ const Dcm_DspDidType *PDidPtr = NULL;\r
+ Dcm_DspDDDType *DDidPtr = NULL;\r
+ PdidBufferNr = dspPDidRef.PDidNr;\r
+ if(pduRxData->SduLength > 2)\r
+ {\r
+ \r
+ switch(pduRxData->SduDataPtr[1])\r
+ {\r
+ case DCM_PERIODICTRANSMIT_DEFAULT_MODE:\r
+ periodicTransmitCounter = 0;\r
+ break;\r
+ case DCM_PERIODICTRANSMIT_SLOWRATE_MODE:\r
+ periodicTransmitCounter = DCM_PERIODICTRANSMIT_SLOW;\r
+ break;\r
+ case DCM_PERIODICTRANSMIT_MEDIUM_MODE:\r
+ periodicTransmitCounter = DCM_PERIODICTRANSMIT_MEDIUM;\r
+ break;\r
+ case DCM_PERIODICTRANSMIT_FAST_MODE:\r
+ periodicTransmitCounter = DCM_PERIODICTRANSMIT_FAST;\r
+ break;\r
+ case DCM_PERIODICTRANSMIT_STOPSENDING_MODE:\r
+ ClearPeriodicIdentifier(pduRxData,pduTxData);\r
+ break;\r
+ default:\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ break;\r
+ }\r
+ if(pduRxData->SduDataPtr[1] != DCM_PERIODICTRANSMIT_STOPSENDING_MODE)\r
+ {\r
+ PdidNumber = pduRxData->SduLength - 2;\r
+ if(1 == PdidNumber)\r
+ {\r
+ PDidLowByte = pduRxData->SduDataPtr[2]; \r
+ if(checkPeriodicIdentifierBuffer(PDidLowByte,dspPDidRef.PDidNr,&PdidPostion) == TRUE)\r
+ {\r
+ if(0 == periodicTransmitCounter)\r
+ {\r
+ if (TRUE == lookupDid(((uint16)PDidLowByte + 0xF200), &PDidPtr)) /*UDS_REQ_0x2A_1*/\r
+ {\r
+ pduTxData->SduDataPtr[1] = PDidLowByte; \r
+ responseCode = readPeriodDidData(PDidPtr,&pduTxData->SduDataPtr[2],&DataLength);\r
+ pduTxData->SduLength = DataLength + 2;\r
+ }\r
+ else if(TRUE == LookupDDD((0xF200 + (uint16)PDidLowByte), (const Dcm_DspDDDType **)&DDidPtr))\r
+ {\r
+ pduTxData->SduDataPtr[1] = PDidLowByte;\r
+ responseCode = readDDDData(DDidPtr,&pduTxData->SduDataPtr[2],&DataLength);\r
+ pduTxData->SduLength = DataLength + 2;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode != DCM_E_POSITIVERESPONSE)\r
+ {\r
+ dspPDidRef.PDidNr--;\r
+ ClearPeriodicIdentifierBuffer(dspPDidRef.PDidNr,PdidPostion);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ dspPDidRef.dspPDid[PdidPostion].PDidTxCounterNumber = periodicTransmitCounter;\r
+ pduTxData->SduLength = 1;\r
+ }\r
+ }\r
+ else\r
+ { \r
+ responseCode = DspSavePeriodicData((DCM_PERODICDID_HIHG_MASK + (uint16)PDidLowByte),periodicTransmitCounter,PdidBufferNr);\r
+ PdidBufferNr++;\r
+ pduTxData->SduLength = 1;\r
+ }\r
+ }\r
+ else if((PdidNumber + PdidBufferNr) <= DCM_LIMITNUMBER_PERIODDATA) /*UDS_REQ_0x2A_6*/\r
+ { \r
+ for(i = 0;(i < PdidNumber)&&(responseCode == DCM_E_POSITIVERESPONSE);i++)\r
+ {\r
+ PDidLowByte = pduRxData->SduDataPtr[2 + i];\r
+ if(checkPeriodicIdentifierBuffer(PDidLowByte,PdidBufferNr,&PdidPostion) == TRUE)\r
+ {\r
+ if(dspPDidRef.dspPDid[PdidPostion].PDidTxCounterNumber != periodicTransmitCounter)\r
+ {\r
+ dspPDidRef.dspPDid[PdidPostion].PDidTxCounterNumber = periodicTransmitCounter;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DspSavePeriodicData((0xF200 + (uint16)PDidLowByte),periodicTransmitCounter,PdidBufferNr);\r
+ PdidBufferNr++;\r
+ }\r
+ pduTxData->SduLength = 1;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ { \r
+ dspPDidRef.PDidNr = PdidBufferNr; \r
+ }\r
+ } \r
+ }\r
+ else if((pduRxData->SduLength == 2)&&(pduRxData->SduDataPtr[1] == DCM_PERIODICTRANSMIT_STOPSENDING_MODE))\r
+ {\r
+ memset(&dspPDidRef,0,sizeof(dspPDidRef));\r
+ pduTxData->SduLength = 1;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;\r
+ }\r
+ DsdDspProcessingDone(responseCode);\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType dynamicallyDefineDataIdentifierbyDid(uint16 DDIdentifier,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ uint8 i;\r
+ uint16 SourceDidNr;\r
+ const Dcm_DspDidType *SourceDid = NULL;\r
+ Dcm_DspDDDType *DDid = NULL;\r
+ uint16 SourceLength = 0;\r
+ uint16 DidLength = 0;\r
+ uint16 Length = 0;\r
+ uint8 Num = 0;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+\r
+ if(FALSE == LookupDDD(DDIdentifier, (const Dcm_DspDDDType **)&DDid))\r
+ {\r
+ while((Num < DCM_MAX_DDD_NUMBER) && (dspDDD[Num].DynamicallyDid != 0 ))\r
+ {\r
+ Num++;\r
+ }\r
+ if(Num >= DCM_MAX_DDD_NUMBER)\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ else\r
+ {\r
+ DDid = &dspDDD[Num];\r
+ }\r
+ }\r
+ else\r
+ {\r
+ while((SourceLength < DCM_MAX_DDDSOURCE_NUMBER) && (DDid->DDDSource[SourceLength].formatOrPosition != 0 ))\r
+ {\r
+ SourceLength++;\r
+ }\r
+ if(SourceLength > DCM_MAX_DDDSOURCE_NUMBER)\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ Length = (pduRxData->SduLength - SID_AND_ALFID_LEN4) /SID_AND_ALFID_LEN4;\r
+ if(((Length*SID_AND_ALFID_LEN4) == (pduRxData->SduLength - SID_AND_ALFID_LEN4)) && (Length != 0))\r
+ {\r
+ if((Length + SourceLength) <= DCM_MAX_DDDSOURCE_NUMBER)\r
+ {\r
+ for(i = 0;(i < Length) && (responseCode == DCM_E_POSITIVERESPONSE);i++)\r
+ {\r
+ SourceDidNr = (((uint16)pduRxData->SduDataPtr[SID_AND_ALFID_LEN4 + i*SID_AND_ALFID_LEN4] << 8) & DCM_DID_HIGH_MASK) + (((uint16)pduRxData->SduDataPtr[(5 + i*SID_AND_ALFID_LEN4)]) & DCM_DID_LOW_MASK);\r
+ if(TRUE == lookupDid(SourceDidNr, &SourceDid))/*UDS_REQ_0x2C_4*/\r
+ { \r
+ if(DspCheckSessionLevel(SourceDid->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSessionRef))\r
+ {\r
+ if(DspCheckSecurityLevel(SourceDid->DspDidInfoRef->DspDidAccess.DspDidRead->DspDidReadSecurityLevelRef))\r
+ {\r
+ if(SourceDid->DspDidInfoRef->DspDidFixedLength == TRUE)\r
+ {\r
+ DidLength = SourceDid->DspDidSize;\r
+ }\r
+ else\r
+ {\r
+ if( SourceDid->DspDidReadDataLengthFnc != NULL)\r
+ {\r
+ SourceDid->DspDidReadDataLengthFnc(&DidLength);\r
+ }\r
+ }\r
+ if(DidLength != 0)\r
+ {\r
+ if((pduRxData->SduDataPtr[SID_AND_ALFID_LEN6 + i*SID_AND_ALFID_LEN4] != 0) &&\r
+ (pduRxData->SduDataPtr[SID_AND_ALFID_LEN7 + i*SID_AND_ALFID_LEN4] != 0) &&\r
+ (((uint16)pduRxData->SduDataPtr[SID_AND_ALFID_LEN6 + i*SID_AND_ALFID_LEN4] + (uint16)pduRxData->SduDataPtr[SID_AND_ALFID_LEN7 + i*SID_AND_ALFID_LEN4] - 1) <= DidLength))\r
+ {\r
+ DDid->DDDSource[i + SourceLength].formatOrPosition = pduRxData->SduDataPtr[SID_AND_ALFID_LEN6 + i*SID_AND_ALFID_LEN4];\r
+ DDid->DDDSource[i + SourceLength].Size = pduRxData->SduDataPtr[SID_AND_ALFID_LEN7 + i*SID_AND_ALFID_LEN4];\r
+ DDid->DDDSource[i + SourceLength].SourceAddressOrDid = SourceDid->DspDidIdentifier;\r
+ DDid->DDDSource[i + SourceLength].DDDTpyeID = DCM_DDD_SOURCE_DID;\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_6*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ \r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_14*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_19,DCM726*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*DCM725*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_13*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_11*/\r
+ responseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ DDid->DynamicallyDid = DDIdentifier;\r
+ pduTxData->SduDataPtr[1] = DCM_DDD_SUBFUNCTION_DEFINEBYDID;\r
+ }\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduDataPtr[1] = DCM_DDD_SUBFUNCTION_DEFINEBYDID;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType dynamicallyDefineDataIdentifierbyAddress(uint16 DDIdentifier,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ uint8 LengthCount;\r
+ uint8 SourceCount;\r
+ uint16 Length;\r
+ uint8 AddressFormat;\r
+ uint8 MemorySizeFormat;\r
+ uint32 MemoryAddress = 0;\r
+ uint16 MemorySize = 0;\r
+ uint16 SourceLength = 0;\r
+ Dcm_DspDDDType *DDid = NULL;\r
+ const Dcm_DspMemoryIdInfo *SourceMemoryInfo = NULL;\r
+ uint8 Num = 0;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ \r
+ if(FALSE == LookupDDD(DDIdentifier, (const Dcm_DspDDDType **)&DDid))\r
+ {\r
+ while((Num < DCM_MAX_DDD_NUMBER) && (dspDDD[Num].DynamicallyDid != 0 ))\r
+ {\r
+ Num++;\r
+ }\r
+ if(Num >= DCM_MAX_DDD_NUMBER)\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ else\r
+ {\r
+ DDid = &dspDDD[Num];\r
+ }\r
+ }\r
+ else\r
+ {\r
+ while((SourceLength < DCM_MAX_DDDSOURCE_NUMBER) && (DDid->DDDSource[SourceLength].formatOrPosition != 0 ))\r
+ {\r
+ SourceLength++;\r
+ }\r
+ if(SourceLength >= DCM_MAX_DDDSOURCE_NUMBER)\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ AddressFormat = (uint8)pduRxData->SduDataPtr[4] & DCM_FORMAT_LOW_MASK;\r
+ MemorySizeFormat = (uint8)(pduRxData->SduDataPtr[4] >> 4) & DCM_FORMAT_LOW_MASK;\r
+ if((AddressFormat+MemorySizeFormat) != 0)\r
+ {\r
+ Length = (pduRxData->SduLength - SID_AND_ALFID_LEN5) / (AddressFormat + MemorySizeFormat);\r
+ }\r
+ if((AddressFormat != 0) && (MemorySizeFormat != 0) && ((SourceLength+Length) <= DCM_MAX_DDDSOURCE_NUMBER))\r
+ {\r
+ if((Length != 0)&&( Length * (AddressFormat + MemorySizeFormat) == (pduRxData->SduLength - 5) ))\r
+ {\r
+ for(LengthCount = 0; (LengthCount < Length) && (responseCode == DCM_E_POSITIVERESPONSE); LengthCount++)\r
+ {\r
+ MemoryAddress = 0;\r
+ for(SourceCount = 0; SourceCount < AddressFormat; SourceCount++)\r
+ {\r
+ MemoryAddress = MemoryAddress << 8;\r
+ MemoryAddress += (uint32)(pduRxData->SduDataPtr[5 + SourceCount + LengthCount * (AddressFormat + MemorySizeFormat)]);\r
+ }\r
+\r
+ /*take value of MemorySize out */\r
+ MemorySize = 0;\r
+ for(SourceCount = 0; SourceCount < MemorySizeFormat; SourceCount++)\r
+ {\r
+ MemorySize = MemorySize << 8;\r
+ MemorySize += (uint32)(pduRxData->SduDataPtr[5 + SourceCount + AddressFormat + LengthCount * (AddressFormat + MemorySizeFormat)]);\r
+ }\r
+ if(TRUE == lookupReadMemory(MemoryAddress, AddressFormat,MemorySize,&SourceMemoryInfo))\r
+ {\r
+ if(DspCheckSecurityLevel(SourceMemoryInfo->pReadMemoryInfo->pSecurityLevel) == TRUE)\r
+ {\r
+ DDid->DDDSource[LengthCount + SourceLength].formatOrPosition = pduRxData->SduDataPtr[4];\r
+ DDid->DDDSource[LengthCount + SourceLength].SourceAddressOrDid = MemoryAddress;\r
+ DDid->DDDSource[LengthCount + SourceLength].Size = MemorySize;\r
+ DDid->DDDSource[LengthCount + SourceLength].DDDTpyeID = DCM_DDD_SOURCE_ADDRESS;\r
+ /*UDS_REQ_0x2C_6*/\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_19,DCM726*/\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_15,UDS_REQ_0x2C_16*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ DDid->DynamicallyDid = DDIdentifier;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_11*/\r
+ responseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_17, UDS_REQ_0x2C_18*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduDataPtr[1] = DCM_DDD_SUBFUNCTION_DEFINEBYADDRESS;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+\r
+/*\r
+ DESCRIPTION:\r
+ UDS Service 0x2c - Clear dynamically Did\r
+*/\r
+static Dcm_NegativeResponseCodeType CleardynamicallyDid(uint16 DDIdentifier,const PduInfoType *pduRxData, PduInfoType * pduTxData)\r
+{\r
+ /*UDS_REQ_0x2C_5*/\r
+ uint8 i;\r
+ uint8 ClearCount;\r
+ uint8 position;\r
+ uint8 ClearNum = 0;\r
+ Dcm_DspDDDType *DDid = NULL;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ \r
+ if(pduRxData->SduLength == 4)\r
+ {\r
+ if(TRUE == LookupDDD(DDIdentifier, (const Dcm_DspDDDType **)&DDid))\r
+ {\r
+ \r
+ if((checkPeriodicIdentifierBuffer(pduRxData->SduDataPtr[3], dspPDidRef.PDidNr, &position) == TRUE)&&(pduRxData->SduDataPtr[2] == 0xF2))\r
+ {\r
+ /*UDS_REQ_0x2C_9*/\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ else\r
+ {\r
+ for(i = 1;i < DCM_MAX_DDD_NUMBER;i++)\r
+ {\r
+ if(0 == dspDDD[i].DynamicallyDid)\r
+ {\r
+ ClearNum = i - 1;\r
+ DDid->DynamicallyDid = dspDDD[ClearNum].DynamicallyDid;\r
+ dspDDD[ClearNum].DynamicallyDid = 0;\r
+ for(ClearCount = 0;ClearCount < DCM_MAX_DDDSOURCE_NUMBER;ClearCount++)\r
+ {\r
+ /*DCM647*/\r
+ DDid->DDDSource[ClearCount].DDDTpyeID = dspDDD[ClearNum].DDDSource[ClearCount].DDDTpyeID;\r
+ DDid->DDDSource[ClearCount].formatOrPosition = dspDDD[ClearNum].DDDSource[ClearCount].formatOrPosition;\r
+ DDid->DDDSource[ClearCount].SourceAddressOrDid = dspDDD[ClearNum].DDDSource[ClearCount].SourceAddressOrDid;\r
+ DDid->DDDSource[ClearCount].Size = dspDDD[ClearNum].DDDSource[ClearCount].Size;\r
+ dspDDD[ClearNum].DDDSource[ClearCount].DDDTpyeID = 0;\r
+ dspDDD[ClearNum].DDDSource[ClearCount].formatOrPosition = 0;\r
+ dspDDD[ClearNum].DDDSource[ClearCount].SourceAddressOrDid = 0;\r
+ dspDDD[ClearNum].DDDSource[ClearCount].Size = 0;\r
+ } \r
+ } \r
+ }\r
+ }\r
+ } \r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduDataPtr[1] = DCM_DDD_SUBFUNCTION_CLEAR;\r
+ pduTxData->SduLength = 2;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+void DspDynamicallyDefineDataIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ /*UDS_REQ_0x2C_1,DCM 259*/\r
+ uint16 i;\r
+ uint8 Position;\r
+ boolean PeriodicdUse = FALSE;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ uint16 DDIdentifier = ((((uint16)pduRxData->SduDataPtr[2]) << 8) & DCM_DID_HIGH_MASK) + (pduRxData->SduDataPtr[3] & DCM_DID_LOW_MASK);\r
+ if(pduRxData->SduLength > 2)\r
+ {\r
+ /* Check if DDID equals 0xF2 or 0xF3 */\r
+ if((pduRxData->SduDataPtr[2] & 0xF2) == 0xF2)\r
+ {\r
+ switch(pduRxData->SduDataPtr[1]) /*UDS_REQ_0x2C_2,DCM 646*/\r
+ {\r
+ case DCM_DDD_SUBFUNCTION_DEFINEBYDID:\r
+ responseCode = dynamicallyDefineDataIdentifierbyDid(DDIdentifier,pduRxData,pduTxData);\r
+ break;\r
+ case DCM_DDD_SUBFUNCTION_DEFINEBYADDRESS:\r
+ responseCode = dynamicallyDefineDataIdentifierbyAddress(DDIdentifier,pduRxData,pduTxData);\r
+ break;\r
+ case DCM_DDD_SUBFUNCTION_CLEAR:\r
+ responseCode = CleardynamicallyDid(DDIdentifier,pduRxData,pduTxData);\r
+ break;\r
+ default:\r
+ responseCode = DCM_E_SUBFUNCTIONNOTSUPPORTED;\r
+ /*UDS_REQ_0x2C_10*/\r
+ break; \r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduDataPtr[2] = pduRxData->SduDataPtr[2];\r
+ pduTxData->SduDataPtr[3] = pduRxData->SduDataPtr[3];\r
+ pduTxData->SduLength = 4;\r
+ }\r
+ }\r
+ else if((pduRxData->SduLength == 2)&&(pduRxData->SduDataPtr[1] == DCM_DDD_SUBFUNCTION_CLEAR))\r
+ {\r
+ /*UDS_REQ_0x2C_7*/\r
+ for(i = 0;i < DCM_MAX_DDD_NUMBER;i++)\r
+ {\r
+ if(checkPeriodicIdentifierBuffer((uint8)(dspDDD[i].DynamicallyDid & DCM_DID_LOW_MASK),dspPDidRef.PDidNr,&Position) == TRUE)\r
+ {\r
+ PeriodicdUse = TRUE;\r
+ }\r
+ }\r
+ if(PeriodicdUse == FALSE)\r
+ {\r
+ memset(dspDDD,0,sizeof(dspDDD));\r
+ pduTxData->SduDataPtr[1] = DCM_DDD_SUBFUNCTION_CLEAR;\r
+ pduTxData->SduLength = 2;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /*UDS_REQ_0x2C_11*/\r
+ responseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;\r
+ }\r
+ DsdDspProcessingDone(responseCode);\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType DspIOControlReturnControlToECU(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidReturnControlToEcu == TRUE)\r
+ {\r
+ if(pduRxData->SduLength > 4)\r
+ {\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+ {\r
+ if(((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
+ {\r
+ if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
+ {\r
+ DidPtr->DspDidReturnControlToEcuFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
+ \r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
+ {\r
+\r
+ if(DidPtr->DspDidControlRecordSize != NULL)\r
+ {\r
+ DidPtr->DspDidReturnControlToEcuFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+ pduTxData->SduDataPtr[3] = DCM_RETURN_CONTROL_TO_ECU;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType DspIOControlResetToDefault(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidResetToDefault == TRUE)\r
+ {\r
+ if(pduRxData->SduLength > 4)\r
+ {\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+ {\r
+ if(((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
+ {\r
+ if(DidPtr->DspDidReturnControlToEcuFnc != NULL)\r
+ {\r
+ DidPtr->DspDidResetToDeaultFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if(DidPtr->DspDidResetToDeaultFnc != NULL)\r
+ {\r
+\r
+ if(DidPtr->DspDidControlRecordSize != NULL)\r
+ {\r
+ DidPtr->DspDidResetToDeaultFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize+4;\r
+ pduTxData->SduDataPtr[3] = DCM_RESET_TO_DEFAULT;\r
+ }\r
+ return responseCode;\r
+}\r
+/*\r
+ DESCRIPTION:\r
+ UDS Service 0x2F - IOControl Freeze Current State\r
+*/\r
+static Dcm_NegativeResponseCodeType DspIOControlFreezeCurrentState(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidFreezeCurrentState == TRUE)\r
+ {\r
+ if(pduRxData->SduLength > 4)\r
+ {\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+ {\r
+ if(((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7) >> 3) == (pduRxData->SduLength - 4))\r
+ {\r
+ if(DidPtr->DspDidFreezeCurrentStateFnc != NULL)\r
+ {\r
+ DidPtr->DspDidFreezeCurrentStateFnc(NULL,&pduRxData->SduDataPtr[4],&pduTxData->SduDataPtr[4],&responseCode);\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if(DidPtr->DspDidFreezeCurrentStateFnc != NULL)\r
+ {\r
+\r
+ if(DidPtr->DspDidControlRecordSize != 0)\r
+ {\r
+ DidPtr->DspDidFreezeCurrentStateFnc(NULL,NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+ pduTxData->SduDataPtr[3] = DCM_FREEZE_CURRENT_STATE;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+static Dcm_NegativeResponseCodeType DspIOControlShortTeamAdjustment(const Dcm_DspDidType *DidPtr,const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ uint8 didControlOptionRecordSize = DidPtr->DspDidControlRecordSize->DspDidControlOptionRecordSize;\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidShortTermAdjustment == TRUE)\r
+ {\r
+ if(pduRxData->SduLength > 4)\r
+ {\r
+ if(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl != NULL)\r
+ {\r
+ if(((((DidPtr->DspDidControlRecordSize->DspDidControlRecordSize + 7)) >> 3) + (didControlOptionRecordSize)) == (pduRxData->SduLength - 4))\r
+ {\r
+ if(DidPtr->DspDidShortTermAdjustmentFnc != NULL)\r
+ {\r
+ DidPtr->DspDidShortTermAdjustmentFnc(&pduRxData->SduDataPtr[4],&pduRxData->SduDataPtr[4 + didControlOptionRecordSize],&pduTxData->SduDataPtr[4],&responseCode);\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else if((didControlOptionRecordSize) == (pduRxData->SduLength - 4))\r
+ {\r
+ if(DidPtr->DspDidShortTermAdjustmentFnc != NULL)\r
+ {\r
+ DidPtr->DspDidShortTermAdjustmentFnc(&pduRxData->SduDataPtr[4],NULL,&pduTxData->SduDataPtr[4],&responseCode);\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else \r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduLength = DidPtr->DspDidControlRecordSize->DspDidControlStatusRecordSize + 4;\r
+ pduTxData->SduDataPtr[3] = DCM_SHORT_TERM_ADJUSTMENT;\r
+ }\r
+ \r
+ return responseCode;\r
+}\r
+\r
+void DspIOControlByDataIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData)\r
+{\r
+ uint16 didNr;\r
+ const Dcm_DspDidType *DidPtr = NULL;\r
+ Dcm_NegativeResponseCodeType responseCode = DCM_E_POSITIVERESPONSE;\r
+ didNr = (pduRxData->SduDataPtr[1] << 8 & DCM_DID_HIGH_MASK) + (pduRxData->SduDataPtr[2] & DCM_DID_LOW_MASK);\r
+ if(pduRxData->SduLength > 3)\r
+ {\r
+ if(TRUE == lookupDid(didNr, &DidPtr))\r
+ {\r
+ if(FALSE == DidPtr->DspDidUsePort)\r
+ {\r
+ if(NULL != DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl)\r
+ {\r
+ if(TRUE == DspCheckSessionLevel(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidControlSessionRef))\r
+ {\r
+ if(TRUE == DspCheckSecurityLevel(DidPtr->DspDidInfoRef->DspDidAccess.DspDidControl->DspDidControlSecurityLevelRef))\r
+ {\r
+ switch(pduRxData->SduDataPtr[3])\r
+ {\r
+ case DCM_RETURN_CONTROL_TO_ECU:\r
+ responseCode = DspIOControlReturnControlToECU(DidPtr,pduRxData,pduTxData);\r
+ break;\r
+ case DCM_RESET_TO_DEFAULT:\r
+ responseCode = DspIOControlResetToDefault(DidPtr,pduRxData,pduTxData); \r
+ break;\r
+ case DCM_FREEZE_CURRENT_STATE:\r
+ responseCode = DspIOControlFreezeCurrentState(DidPtr,pduRxData,pduTxData);\r
+ break;\r
+ case DCM_SHORT_TERM_ADJUSTMENT:\r
+ responseCode = DspIOControlShortTeamAdjustment(DidPtr,pduRxData,pduTxData);\r
+ break;\r
+ default:\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ break;\r
+ \r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_SECUTITYACCESSDENIED;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* if UsePort == True, NRC 0x10 */\r
+ responseCode = DCM_E_GENERALREJECT;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_REQUESTOUTOFRANGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ responseCode = DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT;\r
+ }\r
+ if(responseCode == DCM_E_POSITIVERESPONSE)\r
+ {\r
+ pduTxData->SduDataPtr[1] = pduRxData->SduDataPtr[1];\r
+ pduTxData->SduDataPtr[2] = pduRxData->SduDataPtr[2];\r
+ }\r
+ DsdDspProcessingDone(responseCode);\r
+}\r
#define SID_CLEAR_DIAGNOSTIC_INFORMATION 0x14\r
#define SID_READ_DTC_INFORMATION 0x19\r
#define SID_READ_DATA_BY_IDENTIFIER 0x22\r
+#define SID_READ_MEMORY_BY_ADDRESS 0x23\r
#define SID_READ_SCALING_DATA_BY_IDENTIFIER 0x24\r
#define SID_SECURITY_ACCESS 0x27\r
#define SID_READ_DATA_BY_PERIODIC_IDENTIFIER 0x2A\r
#define SID_WRITE_DATA_BY_IDENTIFIER 0x2E\r
#define SID_INPUT_OUTPUT_CONTROL_BY_IDENTIFIER 0x2F\r
#define SID_ROUTINE_CONTROL 0x31\r
+#define SID_WRITE_MEMORY_BY_ADDRESS 0x3D\r
#define SID_TESTER_PRESENT 0x3E\r
#define SID_NEGATIVE_RESPONSE 0x7F\r
#define SID_CONTROL_DTC_SETTING 0x85\r
DSD_TX_RESPONSE_SUPPRESSED\r
} DsdProcessingDoneResultType;\r
\r
+/*\r
+ * DCM CALLOUT\r
+ */\r
+Dcm_ReturnWriteMemoryType Dcm_WriteMemory(Dcm_OpStatusType OpStatus,\r
+ uint8 MemoryIdentifier,\r
+ uint32 MemoryAddress,\r
+ uint32 MemorySize,\r
+ uint8* MemoryData);\r
+Dcm_ReturnReadMemoryType Dcm_ReadMemory(Dcm_OpStatusType OpStatus,\r
+ uint8 MemoryIdentifier,\r
+ uint32 MemoryAddress,\r
+ uint32 MemorySize,\r
+ uint8* MemoryData);\r
/*\r
* DSP\r
*/\r
void DspUdsControlDtcSetting(const PduInfoType *pduRxData, PduInfoType *pduTxData);\r
void DspUdsRoutineControl(const PduInfoType *pduRxData, PduInfoType *pduTxData);\r
void DspDcmConfirmation(PduIdType confirmPduId);\r
-\r
+void DspUdsReadMemoryByAddress(const PduInfoType *pduRxData, PduInfoType *pduTxData);\r
+void DspUdsWriteMemoryByAddress(const PduInfoType *pduRxData, PduInfoType *pduTxData);\r
+void DspReadDataByPeriodicIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData);\r
+void DspDynamicallyDefineDataIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData);\r
+void DspIOControlByDataIdentifier(const PduInfoType *pduRxData,PduInfoType *pduTxData);\r
boolean DspCheckSessionLevel(Dcm_DspSessionRowType const* const* sessionLevelRefTable);\r
boolean DspCheckSecurityLevel(Dcm_DspSecurityRowType const* const* securityLevelRefTable);\r
\r
Std_ReturnType DslGetSesCtrlType(Dcm_SesCtrlType *sesCtrlType);\r
BufReq_ReturnType DslProvideTxBuffer(PduIdType dcmTxPduId, const PduInfoType **pduInfoPtr, PduLengthType length);\r
void DslTxConfirmation(PduIdType dcmTxPduId, NotifResultType result);\r
+void DslInternal_ResponseOnOneDataByPeriodicId(uint8 PericodID);\r
void DslResetSessionTimeoutTimer(void);\r
\r
\r
+\r
#endif /* DCM_INTERNAL_H_ */\r
+++ /dev/null
-/* -------------------------------- Arctic Core ------------------------------\r
- * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
- *\r
- * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
- *\r
- * This source code is free software; you can redistribute it and/or modify it\r
- * under the terms of the GNU General Public License version 2 as published by the\r
- * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
- *\r
- * This program is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
- * for more details.\r
- * -------------------------------- Arctic Core ------------------------------*/\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-#ifndef DCM_TYPES_H_\r
-#define DCM_TYPES_H_\r
-#include "Std_Types.h"\r
-\r
-/*\r
- * Dcm_SecLevelType\r
- */\r
-typedef uint8 Dcm_SecLevelType;\r
-#define DCM_SEC_LEV_LOCKED 0x00\r
-#define DCM_SEC_LEV_L1 0x01\r
-#define DCM_SEC_LEV_ALL 0xFF\r
-\r
-/*\r
- * Dcm_SesCtrlType\r
- */\r
-typedef uint8 Dcm_SesCtrlType;\r
-#define DCM_DEFAULT_SESSION 0x01\r
-#define DCM_PROGRAMMING_SESSION 0x02\r
-#define DCM_EXTENDED_DIAGNOSTIC_SESSION 0x03\r
-#define DCM_SAFTEY_SYSTEM_DIAGNOSTIC_SESSION 0x04\r
-#define DCM_ALL_SESSION_LEVEL 0xFF\r
-\r
-typedef uint8 Dcm_ConfirmationStatusType;\r
-#define DCM_RES_POS_OK 0x00\r
-#define DCM_RES_POS_NOT_OK 0x01\r
-#define DCM_RES_NEG_OK 0x02\r
-#define DECM_RES_NEG_NOT_OK 0x03\r
-\r
-/*\r
- * Dcm_ProtocolType\r
- */\r
-typedef uint8 Dcm_ProtocolType;\r
-#define DCM_OBD_ON_CAN 0x00\r
-#define DCM_UDS_ON_CAN 0x01\r
-#define DCM_UDS_ON_FLEAXRAY 0x02\r
-#define DCM_ROE_ON_CAN 0x03\r
-#define DCM_ROE_ON_FLEXRAY 0x04\r
-#define DCM_PERIODICTRANS_ON_CAN 0x05\r
-#define DCM_PERIODICTRANS_ON_FLEXRAY 0X06\r
-\r
-/*\r
- * Dcm_NegativeResponseCodeType\r
- */\r
-typedef uint8 Dcm_NegativeResponseCodeType;\r
-#define DCM_E_GENERALREJECT 0x10\r
-#define DCM_E_BUSYREPEATREQUEST 0x21\r
-#define DCM_E_CONDITIONSNOTCORRECT 0x22\r
-#define DCM_E_REQUESTSEQUENCEERROR 0x24\r
-#define DCM_E_REQUESTOUTOFRANGE 0x31\r
-#define DCM_E_SECUTITYACCESSDENIED 0x33\r
-#define DCM_E_GENERALPROGRAMMINGFAILURE 0x72\r
-#define DCM_E_SUBFUNCTIONNOTSUPPORTEDINACTIVESESSION 0x7E\r
-#define DCM_E_RPMTOOHIGH 0x81\r
-#define DCM_E_RPMTOLOW 0x82\r
-#define DCM_E_ENGINEISRUNNING 0x83\r
-#define DCM_E_ENGINEISNOTRUNNING 0x84\r
-#define DCM_E_ENGINERUNTIMETOOLOW 0x85\r
-#define DCM_E_TEMPERATURETOOHIGH 0x86\r
-#define DCM_E_TEMPERATURETOOLOW 0x87\r
-#define DCM_E_VEHICLESPEEDTOOHIGH 0x88\r
-#define DCM_E_VEHICLESPEEDTOOLOW 0x89\r
-#define DCM_E_THROTTLE_PEDALTOOHIGH 0x8A\r
-#define DCM_E_THROTTLE_PEDALTOOLOW 0x8B\r
-#define DCM_E_TRANSMISSIONRANGENOTINNEUTRAL 0x8C\r
-#define DCM_E_TRANSMISSIONRANGENOTINGEAR 0x8D\r
-#define DCM_E_BRAKESWITCH_NOTCLOSED 0x8F\r
-#define DCM_E_SHIFTERLEVERNOTINPARK 0x90\r
-#define DCM_E_TORQUECONVERTERCLUTCHLOCKED 0x91\r
-#define DCM_E_VOLTAGETOOHIGH 0x92\r
-#define DCM_E_VOLTAGETOOLOW 0x93\r
-\r
-#define DCM_E_POSITIVERESPONSE 0x00\r
-#define DCM_E_SERVICENOTSUPPORTED 0x11\r
-#define DCM_E_SUBFUNCTIONNOTSUPPORTED 0x12\r
-#define DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT 0x13\r
-#define DCM_E_RESPONSEPENDING 0x78\r
-#define DCM_E_SERVICENOTSUPPORTEDINACTIVESESSION 0x7F\r
-\r
-#endif /*DCM_TYPES_H_*/\r
#include <string.h>\r
#include "Dem.h"\r
//#include "Fim.h"\r
-//#include "NvM.h"\r
+#include "NvM.h"\r
//#include "SchM_Dem.h"\r
#include "MemMap.h"\r
#include "Cpu.h"\r
+#include "Dem_Types.h"\r
+#include "Dem_Lcfg.h"\r
\r
+#define USE_DEBUG_PRINTF\r
+#include "debug.h"\r
/*\r
* Local defines\r
*/\r
/*\r
* Local types\r
*/\r
-\r
-typedef uint16 ChecksumType;\r
+#if !defined(USE_DCM)\r
+typedef uint8 Dcm_NegativeResponseCodeType;\r
+#define DCM_E_POSITIVERESPONSE ((Dcm_NegativeResponseCodeType)0x00)\r
+#endif\r
\r
// DtcFilterType\r
typedef struct {\r
boolean errorStatusChanged;\r
} EventStatusRecType;\r
\r
-\r
// Types for storing different event data on event memory\r
typedef struct {\r
- Dem_EventIdType eventId;\r
- uint16 occurrence;\r
- ChecksumType checksum;\r
+ Dem_EventIdType eventId;\r
+ uint16 occurrence;\r
+ Dem_EventStatusExtendedType eventStatusExtended;\r
+ ChecksumType checksum;\r
} EventRecType;\r
\r
-//lint -save -e43 //PC-Lint misunderstanding: Array of size 0 is OK.\r
-typedef struct {\r
- Dem_EventIdType eventId;\r
- uint16 occurrence;\r
- uint16 dataSize;\r
- sint8 data[DEM_MAX_SIZE_FF_DATA];\r
- ChecksumType checksum;\r
-} FreezeFrameRecType;\r
-//lint -restore\r
-\r
typedef struct {\r
Dem_EventIdType eventId;\r
uint16 dataSize;\r
* Allocation of primary event memory ramlog (after init) in uninitialized memory\r
*/\r
/** @req DEM162 */\r
-static EventRecType priMemEventBuffer[DEM_MAX_NUMBER_EVENT_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
+EventRecType priMemEventBuffer[DEM_MAX_NUMBER_EVENT_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
static FreezeFrameRecType priMemFreezeFrameBuffer[DEM_MAX_NUMBER_FF_DATA_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
+//FreezeFrameRecType FreezeFrameMirrorBuffer[DEM_MAX_NUMBER_FF_DATA_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
+extern FreezeFrameRecType* FreezeFrameMirrorBuffer[];\r
static ExtDataRecType priMemExtDataBuffer[DEM_MAX_NUMBER_EXT_DATA_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
+HealingRecType priMemAgingBuffer[DEM_MAX_NUMBER_AGING_PRI_MEM] __attribute__ ((section (".dem_eventmemory_pri")));\r
+extern HealingRecType HealingMirrorBuffer[DEM_MAX_NUMBER_AGING_PRI_MEM];\r
+\r
+/* block in NVRam, use for freezeframe */\r
+extern const NvM_BlockIdType FreezeFrameBlockId[DEM_MAX_NUMBER_FF_DATA_PRI_MEM];\r
+/* block in NVRam, use for aging */\r
+extern const NvM_BlockIdType HealingBlockId;\r
+\r
+\r
+/*\r
+*Allocation of freezeFrame storage timestamp,record the time order\r
+*/\r
+/**private variable for freezeframe */\r
+static uint32 FF_TimeStamp = 0;\r
\r
+/*\r
+ * TRUE: priMemFreezeFrameBuffer changed,\r
+ * FALSE: priMemFreezeFrameBuffer not changed\r
+ */\r
+static boolean FFIsModified = FALSE;\r
+\r
+/*\r
+ * TRUE: priMemAgingBuffer changed,\r
+ * FALSE: priMemAgingBuffer not changed\r
+ */\r
+static boolean AgingIsModified = FALSE;\r
\r
/*\r
* Procedure: zeroPriMemBuffers\r
{\r
const Dem_EventParameterType *EventIdParamList = configSet->EventParameter;\r
\r
- // Lookup the correct event id parameters\r
+ /* Lookup the correct event id parameters */\r
uint16 i=0;\r
while ((EventIdParamList[i].EventID != eventId) && (!EventIdParamList[i].Arc_EOL)) {\r
i++;\r
*eventIdParam = NULL;\r
}\r
}\r
+/*\r
+ * Procedure: checkEntryValid\r
+ * Description: Returns whether event id "eventId" is a valid entry in primary memory\r
+ */\r
+static boolean checkEntryValid(Dem_EventIdType eventId){\r
+ const Dem_EventParameterType *EventIdParamList = configSet->EventParameter;\r
+ boolean isValid = FALSE;\r
+ uint16 i=0;\r
+ while ((EventIdParamList[i].EventID != eventId) && (!EventIdParamList[i].Arc_EOL)) {\r
+ i++;\r
+ }\r
\r
+ if (!EventIdParamList[i].Arc_EOL) {\r
+ // Event was found\r
+ uint16 index = 0;\r
+ for (index = 0; (index < DEM_MAX_NR_OF_EVENT_DESTINATION)\r
+ && (EventIdParamList[i].EventClass->EventDestination[index] != DEM_EVENT_DESTINATION_END_OF_LIST); index++) {\r
+ if( DEM_DTC_ORIGIN_PRIMARY_MEMORY == EventIdParamList[i].EventClass->EventDestination[index]){\r
+ // Event should be stored in primary memory.\r
+ isValid = TRUE;\r
+ }\r
+ }\r
\r
+ } else {\r
+ // The event did not exist\r
+ }\r
+ return isValid;\r
+}\r
/*\r
* Procedure: preDebounceNone\r
* Description: Returns the result of the debouncing.\r
static void updateEventStatusRec(const Dem_EventParameterType *eventParam, Dem_EventStatusType eventStatus, boolean createIfNotExist, EventStatusRecType *eventStatusRec)\r
{\r
EventStatusRecType *eventStatusRecPtr;\r
+ sint8 faultCounterBeforeDebounce = 0;\r
+ sint8 faultCounterAfterDebounce = 0;\r
imask_t state;\r
Irq_Save(state);\r
\r
- // Lookup event ID\r
lookupEventStatusRec(eventParam->EventID, &eventStatusRecPtr);\r
\r
if ((eventStatusRecPtr == NULL) && (createIfNotExist)) {\r
- // Search for free position\r
lookupEventStatusRec(DEM_EVENT_ID_NULL, &eventStatusRecPtr);\r
-\r
if (eventStatusRecPtr != NULL) {\r
- // Create new event record\r
eventStatusRecPtr->eventId = eventParam->EventID;\r
eventStatusRecPtr->eventParamRef = eventParam;\r
eventStatusRecPtr->faultDetectionCounter = 0;\r
eventStatusRecPtr->errorStatusChanged = FALSE;\r
}\r
else {\r
- // Error: Event status buffer full\r
DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_UPDATE_EVENT_STATUS_ID, DEM_E_EVENT_STATUS_BUFF_FULL);\r
}\r
}\r
\r
\r
if (eventStatusRecPtr != NULL) {\r
- // Handle debouncing\r
+ faultCounterBeforeDebounce = eventStatusRecPtr->faultDetectionCounter;\r
+\r
if (eventParam->EventClass->PreDebounceAlgorithmClass != NULL) {\r
switch (eventParam->EventClass->PreDebounceAlgorithmClass->PreDebounceName) { /** @req DEM004 */ /** @req DEM342 */\r
case DEM_NO_PRE_DEBOUNCE:\r
break;\r
\r
default:\r
- // Don't know how to handle this.\r
DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_UPDATE_EVENT_STATUS_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
break;\r
}\r
}\r
-\r
+ faultCounterAfterDebounce = eventStatusRecPtr->faultDetectionCounter;\r
+ \r
eventStatusRecPtr->errorStatusChanged = FALSE;\r
\r
- // Check test failed\r
if (eventStatus == DEM_EVENT_STATUS_FAILED) {\r
if (!(eventStatusRecPtr->eventStatusExtended & DEM_TEST_FAILED)) {\r
eventStatusRecPtr->occurrence++;\r
eventStatusRecPtr->errorStatusChanged = TRUE;\r
}\r
/** @req DEM036 */ /** @req DEM379.PendingSet */\r
- eventStatusRecPtr->eventStatusExtended |= (DEM_TEST_FAILED | DEM_TEST_FAILED_THIS_OPERATION_CYCLE | DEM_TEST_FAILED_SINCE_LAST_CLEAR | DEM_PENDING_DTC);\r
+ eventStatusRecPtr->eventStatusExtended |= (DEM_TEST_FAILED | DEM_TEST_FAILED_THIS_OPERATION_CYCLE | DEM_TEST_FAILED_SINCE_LAST_CLEAR | DEM_PENDING_DTC | DEM_CONFIRMED_DTC);\r
eventStatusRecPtr->eventStatusExtended &= (Dem_EventStatusExtendedType)~(DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR | DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE);\r
}\r
\r
- // Check test passed\r
if (eventStatus == DEM_EVENT_STATUS_PASSED) {\r
- if (eventStatusRecPtr->eventStatusExtended & DEM_TEST_FAILED) {\r
+ if (eventStatusRecPtr->eventStatusExtended & (DEM_TEST_FAILED | DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE)) {\r
eventStatusRecPtr->errorStatusChanged = TRUE;\r
}\r
/** @req DEM036 */\r
eventStatusRecPtr->eventStatusExtended &= (Dem_EventStatusExtendedType)~(DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR | DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE);\r
}\r
\r
- // Copy the record\r
+ if ((eventStatus == DEM_EVENT_STATUS_PREFAILED)\\r
+ && (faultCounterBeforeDebounce <= 0) && (faultCounterAfterDebounce > 0)){\r
+ eventStatusRecPtr->errorStatusChanged = TRUE;\r
+ }\r
+\r
memcpy(eventStatusRec, eventStatusRecPtr, sizeof(EventStatusRecType));\r
}\r
else {\r
- // Copy an empty record to return data\r
eventStatusRec->eventId = DEM_EVENT_ID_NULL;\r
eventStatusRec->faultDetectionCounter = 0;\r
eventStatusRec->occurrence = 0;\r
lookupEventStatusRec(eventRec->eventId, &eventStatusRecPtr);\r
\r
if (eventStatusRecPtr != NULL) {\r
- // Update occurrence counter, rest of pre init state is kept.\r
+ // Update occurrence counter.\r
eventStatusRecPtr->occurrence += eventRec->occurrence;\r
+ // Merge event status extended with stored\r
+ // TEST_FAILED_SINCE_LAST_CLEAR should be set if set if set in either\r
+ eventStatusRecPtr->eventStatusExtended |= (Dem_EventStatusExtendedType)(eventRec->eventStatusExtended & DEM_TEST_FAILED_SINCE_LAST_CLEAR);\r
+ // DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR should cleared if cleared in either\r
+ eventStatusRecPtr->eventStatusExtended |= (Dem_EventStatusExtendedType)(eventRec->eventStatusExtended & eventStatusRecPtr->eventStatusExtended & DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR);\r
+ // DEM_PENDING_DTC and DEM_CONFIRMED_DTC should be set if set in either\r
+ eventStatusRecPtr->eventStatusExtended |= (Dem_EventStatusExtendedType)(eventRec->eventStatusExtended & (DEM_PENDING_DTC | DEM_CONFIRMED_DTC));\r
\r
}\r
- else {\r
- // Search for free position\r
- lookupEventStatusRec(DEM_EVENT_ID_NULL, &eventStatusRecPtr);\r
-\r
- if (eventStatusRecPtr != NULL) {\r
- // Create new event, from stored event\r
- eventStatusRecPtr->eventId = eventRec->eventId;\r
- lookupEventIdParameter(eventRec->eventId, &eventStatusRecPtr->eventParamRef);\r
- eventStatusRecPtr->faultDetectionCounter = 0;\r
- eventStatusRecPtr->occurrence = eventRec->occurrence;\r
- eventStatusRecPtr->eventStatusExtended = DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE | DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR;\r
- eventStatusRecPtr->errorStatusChanged = FALSE;\r
- }\r
- else {\r
- // Error: Event status buffer full\r
- DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_MERGE_EVENT_STATUS_ID, DEM_E_EVENT_STATUS_BUFF_FULL);\r
- }\r
- }\r
\r
Irq_Restore(state);\r
}\r
\r
-\r
/*\r
- * Procedure: deleteEventStatusRec\r
- * Description: Delete the status record of "eventParam->eventId" from "eventStatusBuffer".\r
+ * Procedure: resetEventStatusRec\r
+ * Description: Reset the status record of "eventParam->eventId" from "eventStatusBuffer".\r
*/\r
-static void deleteEventStatusRec(const Dem_EventParameterType *eventParam)\r
+static void resetEventStatusRec(const Dem_EventParameterType *eventParam)\r
{\r
EventStatusRecType *eventStatusRecPtr;\r
imask_t state;\r
- Irq_Save(state);\r
+ Irq_Save(state);\r
\r
// Lookup event ID\r
lookupEventStatusRec(eventParam->EventID, &eventStatusRecPtr);\r
\r
if (eventStatusRecPtr != NULL) {\r
- // Delete event record\r
- memset(eventStatusRecPtr, 0, sizeof(EventStatusRecType));\r
+ // Reset event record\r
+ eventStatusRecPtr->faultDetectionCounter = 0;\r
+ eventStatusRecPtr->eventStatusExtended = (DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE | DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR);\r
+ eventStatusRecPtr->errorStatusChanged = FALSE;\r
+ eventStatusRecPtr->occurrence = 0;\r
}\r
\r
- Irq_Restore(state);\r
+ Irq_Restore(state);\r
}\r
\r
-\r
/*\r
* Procedure: getEventStatusRec\r
* Description: Returns the status record of "eventId" in "eventStatusRec"\r
\r
return dtcMatch;\r
}\r
+/*\r
+ * Procedure: bubbleSort\r
+ * Description: bubble sort\r
+ */\r
+static void bubbleSort(FreezeFrameRecType *freezeFrameBuf, uint16 length)\r
+{\r
+ FreezeFrameRecType temp;\r
+ uint16 i = 0;\r
+ uint16 j = 0;\r
+\r
+ //Bubble sort:rearrange priMemFreezeFrameBuffer from little to big\r
+ for(i=0;i<length;i++){\r
+ for(j=length-1; j > i; j--){\r
+ if(freezeFrameBuf[i].timeStamp > freezeFrameBuf[j].timeStamp){\r
+ //exchange buffer data\r
+ memcpy(&temp,&freezeFrameBuf[i],sizeof(FreezeFrameRecType));\r
+ memcpy(&freezeFrameBuf[i],&freezeFrameBuf[j],sizeof(FreezeFrameRecType));\r
+ memcpy(&freezeFrameBuf[j],&temp,sizeof(FreezeFrameRecType)); \r
+ }\r
+ }\r
+ }\r
\r
+}\r
\r
-// PC-Lint (715 etc): Remove errors until function is filled.\r
-//lint -e{715} Symbol not referenced\r
-static void getFreezeFrameData(const Dem_EventParameterType *eventParam, FreezeFrameRecType *freezeFrame)\r
+/*\r
+ * Procedure: retrieveEventStatusBit\r
+ * Description: retrieve Event Status Bit\r
+ */\r
+static boolean retrieveEventStatusBit(FreezeFrameRecType *freezeFrameBuf, \r
+ uint16 length , \r
+ Dem_EventStatusExtendedType nBit, \r
+ FreezeFrameRecType **freezeFrame)\r
{\r
- // TODO: Fill out\r
- freezeFrame->eventId = DEM_EVENT_ID_NULL; // Not supported yet\r
+ boolean freezeFrameFound = FALSE;\r
+ uint16 i = 0;\r
+ uint16 j = 0;\r
+\r
+ for(i=0;i<length;i++){\r
+ for(j=0; (j < DEM_MAX_NUMBER_EVENT) && (!freezeFrameFound); j++){\r
+ freezeFrameFound = (eventStatusBuffer[j].eventId == freezeFrameBuf[i].eventId)\\r
+ && (!(eventStatusBuffer[j].eventStatusExtended & nBit));\r
+ if(freezeFrameFound == TRUE){\r
+ *freezeFrame = &freezeFrameBuf[i];\r
+ }\r
+ } \r
+ }\r
+\r
+ return freezeFrameFound;\r
+\r
}\r
\r
+/*\r
+ * Procedure: lookupFreezeFrameForDisplacementPreInit\r
+ * Description: implement displacement strategy preinit:1.find out the oldest "not confirmed" DTC\r
+ * 2.find out the oldest inactive DTC,inactive:testFailed is not set\r
+ * 3.find ou the oldest active DTC,active:testFailed is set\r
+ */\r
+static boolean lookupFreezeFrameForDisplacementPreInit(FreezeFrameRecType **freezeFrame)\r
+{\r
+ boolean freezeFrameFound = FALSE;\r
+ \r
+ /* Bubble sort:rearrange priMemFreezeFrameBuffer from little to big */\r
+ bubbleSort(preInitFreezeFrameBuffer, DEM_MAX_NUMBER_FF_DATA_PRE_INIT);\r
\r
-// PC-Lint (715 etc): Remove errors until function is filled.\r
-//lint -e{715} Symbol not referenced\r
+ /* find out the oldest not confirmed dtc */\r
+ freezeFrameFound = retrieveEventStatusBit(preInitFreezeFrameBuffer, DEM_MAX_NUMBER_FF_DATA_PRE_INIT, DEM_CONFIRMED_DTC, freezeFrame);\r
+\r
+ /* if all confirmed,lookup the oldest inactive dtc */\r
+ if(freezeFrameFound == FALSE){\r
+ freezeFrameFound = retrieveEventStatusBit(preInitFreezeFrameBuffer, DEM_MAX_NUMBER_FF_DATA_PRE_INIT, DEM_TEST_FAILED, freezeFrame);\r
+ }\r
+ \r
+ /* if all confirmed,lookup the oldest active dtc */\r
+ if(freezeFrameFound == FALSE){\r
+ *freezeFrame = &preInitFreezeFrameBuffer[0];\r
+ freezeFrameFound = TRUE;\r
+ } \r
+\r
+ return freezeFrameFound;\r
+}\r
+\r
+/*\r
+ * Procedure: lookupFreezeFrameForDisplacement\r
+ * Description: implement displacement strategy:1.find out the oldest "not confirmed" DTC\r
+ * 2.find out the oldest inactive DTC,inactive:testFailed is not set\r
+ * 3.find ou the oldest active DTC,active:testFailed is set\r
+ */\r
+static boolean lookupFreezeFrameForDisplacement(FreezeFrameRecType **freezeFrame)\r
+{\r
+ boolean freezeFrameFound = FALSE;\r
+ \r
+ bubbleSort(priMemFreezeFrameBuffer, DEM_MAX_NUMBER_FF_DATA_PRI_MEM);\r
+\r
+ /* Find out the oldest not confirmed dtc */\r
+ freezeFrameFound = retrieveEventStatusBit(priMemFreezeFrameBuffer, DEM_MAX_NUMBER_FF_DATA_PRI_MEM, DEM_CONFIRMED_DTC, freezeFrame);\r
+\r
+ /* If all confirmed, lookup the oldest inactive dtc */\r
+ if(freezeFrameFound == FALSE){\r
+ freezeFrameFound = retrieveEventStatusBit(priMemFreezeFrameBuffer, DEM_MAX_NUMBER_FF_DATA_PRI_MEM, DEM_TEST_FAILED, freezeFrame);\r
+ }\r
+\r
+ /* If all confirmed,lookup the oldest active dtc */\r
+ if(freezeFrameFound == FALSE){ \r
+ *freezeFrame = &priMemFreezeFrameBuffer[0];\r
+ freezeFrameFound = TRUE; \r
+ }\r
+\r
+ return freezeFrameFound;\r
+}\r
+/*\r
+ * Procedure: rearrangeFreezeFrameTimeStamp\r
+ * Description: rearrange FF timestamp when timestamp is beyond DEM_MAX_TIMESTAMP_FOR_REARRANGEMENT \r
+ */\r
+static void rearrangeFreezeFrameTimeStamp(uint32 *timeStamp)\r
+{\r
+ FreezeFrameRecType temp;\r
+ uint32 i = 0;\r
+ uint32 j = 0;\r
+ uint32 k = 0;\r
+ \r
+ /* Bubble sort:rearrange priMemFreezeFrameBuffer from little to big */\r
+ for(i=0;i<DEM_MAX_NUMBER_FF_DATA_PRI_MEM;i++){\r
+ if(priMemFreezeFrameBuffer[i].eventId != DEM_EVENT_ID_NULL){\r
+ for(j=DEM_MAX_NUMBER_FF_DATA_PRI_MEM-1; j > i; j--){\r
+ if(priMemFreezeFrameBuffer[j].eventId != DEM_EVENT_ID_NULL){\r
+ if(priMemFreezeFrameBuffer[i].timeStamp > priMemFreezeFrameBuffer[j].timeStamp){\r
+ //exchange buffer data\r
+ memcpy(&temp,&priMemFreezeFrameBuffer[i],sizeof(FreezeFrameRecType));\r
+ memcpy(&priMemFreezeFrameBuffer[i],&priMemFreezeFrameBuffer[j],sizeof(FreezeFrameRecType));\r
+ memcpy(&priMemFreezeFrameBuffer[j],&temp,sizeof(FreezeFrameRecType)); \r
+ }\r
+\r
+ }\r
+ \r
+ }\r
+ priMemFreezeFrameBuffer[i].timeStamp = k++;\r
+ }\r
+ \r
+ }\r
+ /* update the current timeStamp */\r
+ *timeStamp = k;\r
+\r
+}\r
+/*\r
+ * Procedure: getFreezeFrameData\r
+ * Description: get FF data according configuration \r
+ */\r
+static void getFreezeFrameData(const Dem_EventParameterType *eventParam, \r
+ FreezeFrameRecType *freezeFrame,\r
+ Dem_EventStatusType eventStatus,\r
+ EventStatusRecType *eventStatusRec)\r
+{\r
+ Dem_FreezeFrameStorageConditonType prefailedOrFailed;\r
+ Std_ReturnType callbackReturnCode;\r
+ uint16 i = 0;\r
+ uint16 storeIndex = 0;\r
+ uint16 recordSize = 0;\r
+ imask_t state;\r
+ const Dem_FreezeFrameClassType *FreezeFrameLocal = NULL;\r
+ Dcm_NegativeResponseCodeType errorCode;//should include Dcm_Lcfg.h\r
+\r
+ /* clear FF data record */\r
+ memset(freezeFrame, 0, sizeof(FreezeFrameRecType ));\r
+\r
+ /* check if prefailed or failed */\r
+ if(eventStatusRec->eventStatusExtended & DEM_TEST_FAILED){\r
+ prefailedOrFailed = FAILED;//confirm the FF is stored for failed\r
+\r
+ }\r
+ else{\r
+ if(eventStatus == DEM_EVENT_STATUS_PREFAILED){\r
+ prefailedOrFailed = PREFAILED;//confirm the FF is stored for prefailed\r
+ }\r
+ else{\r
+ prefailedOrFailed = FF_STORAGE_CONDITION_WRONG;\r
+ freezeFrame->eventId = DEM_EVENT_ID_NULL;\r
+ return;\r
+ }\r
+ }\r
+\r
+ /* Find out the corresponding FF class */\r
+ for(i = 0;(i<DEM_MAX_NR_OF_CLASSES_IN_FREEZEFRAME_DATA) && (eventParam->FreezeFrameClassRef[i] != NULL);i++){\r
+ if(eventParam->FreezeFrameClassRef[i]->FFStorageCondition == prefailedOrFailed){\r
+ FreezeFrameLocal = eventParam->FreezeFrameClassRef[i];\r
+ break;\r
+ }\r
+ }\r
+ /* get the dids */\r
+ if(FreezeFrameLocal != NULL){\r
+ if(FreezeFrameLocal->FFIdClassRef != NULL){\r
+ for (i = 0; (i < DEM_MAX_NR_OF_RECORDS_IN_FREEZEFRAME_DATA) && (!(FreezeFrameLocal->FFIdClassRef[i].Arc_EOL)); i++) {\r
+ if(FreezeFrameLocal->FFIdClassRef[i].PidOrDidUsePort == FALSE){\r
+ if(FreezeFrameLocal->FFIdClassRef[i].DidReadDataLengthFnc != NULL){\r
+ callbackReturnCode = FreezeFrameLocal->FFIdClassRef[i].DidReadDataLengthFnc(&recordSize);\r
+ if(callbackReturnCode != E_OK){\r
+ //if fail to read data length,discard the storage of FF\r
+ freezeFrame->eventId = DEM_EVENT_ID_NULL;\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GET_FREEZEFRAME_ID, DEM_READ_DATA_LENGTH_FAILED);\r
+ return;\r
+ }\r
+ }\r
+ /* if no readDidDataLengthFunction, then try the PidOrDidSize. */\r
+ else{\r
+ recordSize = FreezeFrameLocal->FFIdClassRef[i].PidOrDidSize;\r
+ }\r
+ /* read out the did data */\r
+ if ((storeIndex + recordSize + DEM_DID_IDENTIFIER_SIZE_OF_BYTES) <= DEM_MAX_SIZE_FF_DATA) {\r
+ /* store DID */\r
+ freezeFrame->data[storeIndex] = (FreezeFrameLocal->FFIdClassRef[i].DidIdentifier>> 8) & 0xFFu;\r
+ storeIndex++;\r
+ freezeFrame->data[storeIndex] = FreezeFrameLocal->FFIdClassRef[i].DidIdentifier & 0xFFu;\r
+ storeIndex++;\r
+ /* store data */\r
+ if(FreezeFrameLocal->FFIdClassRef[i].DidConditionCheckReadFnc != NULL){\r
+ callbackReturnCode = FreezeFrameLocal->FFIdClassRef[i].DidConditionCheckReadFnc(&errorCode);\r
+ if ((callbackReturnCode == E_OK) && (errorCode == DCM_E_POSITIVERESPONSE)) {\r
+ if(FreezeFrameLocal->FFIdClassRef[i].DidReadFnc!= NULL){\r
+ callbackReturnCode = FreezeFrameLocal->FFIdClassRef[i].DidReadFnc(&freezeFrame->data[storeIndex]);\r
+ if (callbackReturnCode != E_OK) {\r
+ memset(&freezeFrame->data[storeIndex], DEM_FREEZEFRAME_DEFAULT_VALUE, recordSize);\r
+ }\r
+ storeIndex += recordSize;\r
+\r
+ }\r
+ else{\r
+ memset(&freezeFrame->data[storeIndex], DEM_FREEZEFRAME_DEFAULT_VALUE, recordSize);\r
+ storeIndex += recordSize;\r
+ }\r
+\r
+ }\r
+ else{\r
+ memset(&freezeFrame->data[storeIndex], DEM_FREEZEFRAME_DEFAULT_VALUE, recordSize);\r
+ storeIndex += recordSize;\r
+ }\r
+ }\r
+ else{\r
+ memset(&freezeFrame->data[storeIndex], DEM_FREEZEFRAME_DEFAULT_VALUE, recordSize);\r
+ storeIndex += recordSize;\r
+ }\r
+\r
+ }\r
+ else{\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GET_FREEZEFRAME_ID, DEM_E_FF_TOO_BIG);\r
+ break;\r
+ } \r
+ }\r
+ else{\r
+ //TODO:RTE should provide the port\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GET_FREEZEFRAME_ID, DEM_DSP_DID_USE_PORT_IS_TRUE);\r
+ }\r
+ } \r
+ }\r
+\r
+ }\r
+ else{\r
+ /* create an empty FF */\r
+ freezeFrame->eventId = DEM_EVENT_ID_NULL;\r
+ }\r
+\r
+ /* Check if any data has been stored */\r
+ if (storeIndex != 0) {\r
+ freezeFrame->eventId = eventParam->EventID;\r
+ freezeFrame->occurrence = eventStatusRec->occurrence;\r
+ freezeFrame->dataSize = storeIndex;\r
+ freezeFrame->recordNumber = FreezeFrameLocal->FFRecordNumber;\r
+ Irq_Save(state);\r
+\r
+ if(FF_TimeStamp > DEM_MAX_TIMESTAMP_FOR_REARRANGEMENT){\r
+ rearrangeFreezeFrameTimeStamp(&FF_TimeStamp);\r
+ }\r
+ \r
+ freezeFrame->timeStamp = FF_TimeStamp;\r
+\r
+ FF_TimeStamp++;\r
+\r
+ Irq_Restore(state);\r
+\r
+ freezeFrame->checksum = calcChecksum(freezeFrame, sizeof(FreezeFrameRecType)-sizeof(ChecksumType));\r
+ }\r
+ else{\r
+ freezeFrame->eventId = DEM_EVENT_ID_NULL;\r
+ freezeFrame->dataSize = storeIndex;\r
+ freezeFrame->checksum = 0;\r
+ } \r
+}\r
+\r
+\r
+/*\r
+ * Procedure: storeFreezeFrameDataPreInit\r
+ * Description: store FF in before preInitFreezeFrameBuffer DEM's full initialization \r
+ */\r
static void storeFreezeFrameDataPreInit(const Dem_EventParameterType *eventParam, const FreezeFrameRecType *freezeFrame)\r
{\r
- // TODO: Fill out\r
+ boolean eventIdFound = FALSE;\r
+ boolean eventIdFreePositionFound=FALSE;\r
+ FreezeFrameRecType *freezeFrameLocal = NULL;\r
+ uint16 i;\r
+ imask_t state;\r
+\r
+ Irq_Save(state);\r
+\r
+ /* Check if already stored */\r
+ for (i = 0; (i<DEM_MAX_NUMBER_FF_DATA_PRE_INIT) && (!eventIdFound); i++){\r
+ eventIdFound = ((preInitFreezeFrameBuffer[i].eventId == eventParam->EventID) && (preInitFreezeFrameBuffer[i].recordNumber== freezeFrame->recordNumber));\r
+ }\r
+\r
+ if(eventIdFound){\r
+ /* overwrite existing */\r
+ memcpy(&preInitFreezeFrameBuffer[i-1], freezeFrame, sizeof(FreezeFrameRecType));\r
+ }\r
+ else{\r
+ /* lookup first free position */\r
+ for (i = 0; (i<DEM_MAX_NUMBER_FF_DATA_PRE_INIT) && (!eventIdFreePositionFound); i++){\r
+ if(preInitFreezeFrameBuffer[i].eventId == DEM_EVENT_ID_NULL){\r
+ eventIdFreePositionFound=TRUE;\r
+ }\r
+ }\r
+\r
+ if (eventIdFreePositionFound) {\r
+ memcpy(&preInitFreezeFrameBuffer[i-1], freezeFrame, sizeof(FreezeFrameRecType));\r
+ }\r
+ else { \r
+ /* do displacement */\r
+ if(lookupFreezeFrameForDisplacementPreInit(&freezeFrameLocal)){\r
+ memcpy(freezeFrameLocal, freezeFrame, sizeof(FreezeFrameRecType));\r
+ }\r
+ else{\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_STORE_FF_DATA_PRE_INIT_ID, DEM_E_PRE_INIT_FF_DATA_BUFF_FULL);\r
+ }\r
+ }\r
+ }\r
+\r
+ Irq_Restore(state);\r
}\r
\r
\r
-// PC-Lint (715 etc): Remove errors until function is filled.\r
-//lint -e{715} Symbol not referenced\r
+/*\r
+ * Procedure: updateFreezeFrameOccurrencePreInit\r
+ * Description: update the occurrence in preInitFreezeFrameBuffer according to the occurrence stored in priMemEventBuffer \r
+ */\r
static void updateFreezeFrameOccurrencePreInit(const EventRecType *EventBuffer)\r
{\r
- // TODO: Fill out\r
+ uint16 i;\r
+\r
+ for (i = 0; i<DEM_MAX_NUMBER_FF_DATA_PRE_INIT; i++){\r
+ if(preInitFreezeFrameBuffer[i].eventId == EventBuffer->eventId){\r
+ preInitFreezeFrameBuffer[i].occurrence += EventBuffer->occurrence;\r
+ }\r
+ }\r
+ \r
}\r
+/*\r
+ * Procedure: initCurrentFreezeFrameTimeStamp\r
+ * Description: initialize current timestamp and update the corresponding timestamp in preInitFreezeFrameBuffer \r
+ */\r
+static void initCurrentFreezeFrameTimeStamp(uint32 *timeStampPtr)\r
+{\r
+ uint16 i = 0;\r
+ uint32 temp = 0;\r
+ imask_t state;\r
\r
+ Irq_Save(state);\r
+\r
+ /* Find out the biggest timestamp in the last power on */\r
+ for (i = 0; i<DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++){\r
+ if((priMemFreezeFrameBuffer[i].eventId != DEM_EVENT_ID_NULL) && \r
+ (priMemFreezeFrameBuffer[i].timeStamp > temp)){\r
+ temp = priMemFreezeFrameBuffer[i].timeStamp;\r
+ }\r
+ }\r
+ temp++;\r
+ for (i = 0; i<DEM_MAX_NUMBER_FF_DATA_PRE_INIT; i++){\r
+ if(preInitFreezeFrameBuffer[i].eventId != DEM_EVENT_ID_NULL){\r
+ preInitFreezeFrameBuffer[i].timeStamp += temp;\r
+ }\r
+ }\r
+ *timeStampPtr += temp; \r
+ Irq_Restore(state);\r
+}\r
\r
/*\r
* Procedure: getExtendedData\r
if (eventIdFound) {\r
// Update event found\r
priMemEventBuffer[i-1].occurrence = eventStatus->occurrence;\r
+ priMemEventBuffer[i-1].eventStatusExtended = eventStatus->eventStatusExtended;\r
priMemEventBuffer[i-1].checksum = calcChecksum(&priMemEventBuffer[i-1], sizeof(EventRecType)-sizeof(ChecksumType));\r
}\r
else {\r
if (eventIdFreePositionFound) {\r
priMemEventBuffer[i-1].eventId = eventStatus->eventId;\r
priMemEventBuffer[i-1].occurrence = eventStatus->occurrence;\r
+ priMemEventBuffer[i-1].eventStatusExtended = eventStatus->eventStatusExtended;\r
priMemEventBuffer[i-1].checksum = calcChecksum(&priMemEventBuffer[i-1], sizeof(EventRecType)-sizeof(ChecksumType));\r
}\r
else {\r
imask_t state;\r
Irq_Save(state);\r
\r
-\r
- // Lookup event ID\r
for (i = 0; (i < DEM_MAX_NUMBER_EVENT_ENTRY_PRI) && (!eventIdFound); i++){\r
eventIdFound = (priMemEventBuffer[i].eventId == eventParam->EventID);\r
}\r
\r
if (eventIdFound) {\r
- // Delete event found\r
memset(&priMemEventBuffer[i-1], 0, sizeof(EventRecType));\r
}\r
\r
\r
return eventIdFound;\r
}\r
+/*\r
+ * Procedure: copyNvmMirror\r
+ * Description: Copies Nvram to buffer\r
+ */\r
\r
-// PC-Lint (715 etc): Remove errors until function is filled.\r
-//lint -e{715} Symbol not referenced\r
+Std_ReturnType copyNvmMirror(const NvM_BlockIdType BlockId, uint8 *dstPtr, const uint8 *srcPtr, uint8 len)\r
+{\r
+\r
+#if (DEM_USE_NVM == STD_ON)\r
+ Std_ReturnType blockReadStatus = E_NOT_OK;\r
+ NvM_RequestResultType requestResult;\r
+\r
+ if( BlockId != 0 ) {\r
+ NvM_GetErrorStatus(BlockId, &requestResult);\r
+ if(requestResult != NVM_REQ_PENDING ) {\r
+ memcpy(dstPtr, srcPtr, len);\r
+ blockReadStatus = E_OK;\r
+ }\r
+ }\r
+\r
+ return blockReadStatus;\r
+#else\r
+ return E_OK;\r
+#endif\r
+}\r
+/*\r
+ * Procedure: writeNvmMirror\r
+ * Description: store data in NVRam\r
+ */\r
+Std_ReturnType writeNvmMirror(const NvM_BlockIdType BlockId, uint8 *dstPtr, const uint8 *srcPtr, uint8 len)\r
+{\r
+#if (DEM_USE_NVM == STD_ON)\r
+ Std_ReturnType blockWriteStatus = E_NOT_OK;\r
+ NvM_RequestResultType requestResult;\r
+\r
+ if( BlockId != 0 ) {\r
+ NvM_GetErrorStatus(BlockId, &requestResult);\r
+ if(requestResult != NVM_REQ_PENDING ) {\r
+ memcpy(dstPtr, srcPtr, len);\r
+ (void)NvM_WriteBlock(BlockId, (const uint8*)dstPtr);\r
+ blockWriteStatus = E_OK;\r
+ }\r
+ }\r
+\r
+ return blockWriteStatus;\r
+#else\r
+ return E_OK;\r
+#endif\r
+}\r
+\r
+/*\r
+ * Procedure: storeAgingRecPerMem\r
+ * Description: store aging records in NVRam\r
+ */\r
+static void storeAgingRecPerMem(const NvM_BlockIdType AgingBlockId)\r
+{\r
+ imask_t state;\r
+\r
+ Irq_Save(state);\r
+\r
+ if( E_NOT_OK == writeNvmMirror(AgingBlockId, (uint8 *)HealingMirrorBuffer, (const uint8 *)priMemAgingBuffer, sizeof(priMemAgingBuffer)) ){\r
+ AgingIsModified = TRUE;\r
+ }\r
+\r
+ Irq_Restore(state);\r
+}\r
+/*\r
+ * Procedure: deleteAgingRecPriMem\r
+ * Description: delete aging record in primary memory\r
+ */\r
+static void deleteAgingRecPriMem(const Dem_EventParameterType *eventParam)\r
+{\r
+ uint16 i;\r
+ imask_t state;\r
+\r
+ Irq_Save(state);\r
+\r
+ for (i = 0; i<DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++){\r
+ if (priMemAgingBuffer[i].eventId == eventParam->EventID){\r
+ memset(&priMemAgingBuffer[i], 0, sizeof(HealingRecType));\r
+ }\r
+ }\r
+\r
+ Irq_Restore(state);\r
+}\r
+\r
+/*\r
+ * Procedure: storeFreezeFrameDataPriMem\r
+ * Description: store FreezeFrame data record in primary memory\r
+ */\r
static void storeFreezeFrameDataPriMem(const Dem_EventParameterType *eventParam, const FreezeFrameRecType *freezeFrame)\r
{\r
- // TODO: Fill out\r
+ boolean eventIdFound = FALSE;\r
+ boolean eventIdFreePositionFound=FALSE;\r
+ boolean displacementPositionFound=FALSE;\r
+ FreezeFrameRecType *freezeFrameLocal;\r
+ uint16 i;\r
+ imask_t state;\r
+\r
+ Irq_Save(state);\r
+\r
+ /* Check if already stored */\r
+ for (i = 0; (i<DEM_MAX_NUMBER_FF_DATA_PRI_MEM) && (!eventIdFound); i++){\r
+ eventIdFound = ((priMemFreezeFrameBuffer[i].eventId == eventParam->EventID) && (priMemFreezeFrameBuffer[i].recordNumber == freezeFrame->recordNumber));\r
+ }\r
+\r
+ if (eventIdFound) {\r
+ memcpy(&priMemFreezeFrameBuffer[i-1], freezeFrame, sizeof(FreezeFrameRecType));\r
+ }\r
+ else {\r
+ for (i = 0; (i < DEM_MAX_NUMBER_FF_DATA_PRI_MEM) && (!eventIdFreePositionFound); i++){\r
+ eventIdFreePositionFound = (priMemFreezeFrameBuffer[i].eventId == DEM_EVENT_ID_NULL);\r
+ }\r
+ if (eventIdFreePositionFound) {\r
+ memcpy(&priMemFreezeFrameBuffer[i-1], freezeFrame, sizeof(FreezeFrameRecType));\r
+ }\r
+ else {\r
+ displacementPositionFound = lookupFreezeFrameForDisplacement(&freezeFrameLocal);\r
+ if(displacementPositionFound){\r
+ memcpy(freezeFrameLocal, freezeFrame, sizeof(FreezeFrameRecType));\r
+ }\r
+ else{\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_STORE_FF_DATA_PRI_MEM_ID, DEM_E_PRI_MEM_FF_DATA_BUFF_FULL);\r
+ } \r
+ }\r
+ }\r
+\r
+ Irq_Restore(state);\r
}\r
+/*\r
+ * Procedure: storeFreezeFrameDataPerMem\r
+ * Description: Store the freeze frame data in NVRam\r
+ * \r
+ */\r
+static void storeFreezeFrameDataPerMem()\r
+{\r
+ imask_t state;\r
+\r
+ Irq_Save(state);\r
+\r
+ for(uint16 i = 0; i < DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++){\r
+ if(memcmp(&priMemFreezeFrameBuffer[i], FreezeFrameMirrorBuffer[i], sizeof(FreezeFrameRecType))){\r
+ if( E_NOT_OK == writeNvmMirror(FreezeFrameBlockId[i], (uint8 *)FreezeFrameMirrorBuffer[i], (const uint8 *)&priMemFreezeFrameBuffer[i], sizeof(FreezeFrameRecType)) ) {\r
+ FFIsModified = TRUE;\r
+ }\r
+ }\r
+ }\r
\r
+ Irq_Restore(state);\r
+}\r
\r
// PC-Lint (715 etc): Remove errors until function is filled.\r
//lint -e{715} Symbol not referenced\r
static void deleteFreezeFrameDataPriMem(const Dem_EventParameterType *eventParam)\r
{\r
- // TODO: Fill out\r
-}\r
+ uint16 i;\r
+ imask_t state;\r
+\r
+ Irq_Save(state);\r
+\r
+ for (i = 0; i<DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++){\r
+ if (priMemFreezeFrameBuffer[i].eventId == eventParam->EventID){\r
+ memset(&priMemFreezeFrameBuffer[i], 0, sizeof(FreezeFrameRecType));\r
+\r
+ }\r
+ }\r
\r
+ Irq_Restore(state);\r
+}\r
\r
/*\r
* Procedure: storeFreezeFrameDataEvtMem\r
{\r
case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
storeFreezeFrameDataPriMem(eventParam, freezeFrame);\r
+ storeFreezeFrameDataPerMem();\r
break;\r
\r
- case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
+ case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
// Not yet supported\r
DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
}\r
}\r
\r
+/*\r
+ * Procedure: lookupFreezeFrameDataRecNumParam\r
+ * Description: Returns TRUE if the requested freezeFrame data number was found among the configured records for the event.\r
+ * "freezeFrameClassPtr" returns a pointer to the record class.\r
+ */\r
+static boolean lookupFreezeFrameDataRecNumParam(uint8 recordNumber, const Dem_EventParameterType *eventParam, Dem_FreezeFrameClassType const **freezeFrameClassPtr)\r
+{\r
+ boolean recNumFound = FALSE;\r
+ uint16 i;\r
+\r
+ if (eventParam->FreezeFrameClassRef != NULL) {\r
+ for (i = 0; (i < DEM_MAX_NR_OF_CLASSES_IN_FREEZEFRAME_DATA) && (eventParam->FreezeFrameClassRef[i] != NULL) && (!recNumFound); i++) {\r
+ if (eventParam->FreezeFrameClassRef[i]->FFRecordNumber == recordNumber) {\r
+ *freezeFrameClassPtr = eventParam->FreezeFrameClassRef[i];\r
+ recNumFound = TRUE;\r
+ }\r
+ }\r
+ }\r
+\r
+ return recNumFound;\r
+}\r
+\r
+/*\r
+ * Procedure: lookupFreezeFrameDataSize\r
+ * Description: Returns TRUE if the requested freezeFrame data size was obtained successfully from the configuration.\r
+ * "dataSize" returns a pointer to the data size.\r
+ */\r
+static boolean lookupFreezeFrameDataSize(uint8 recordNumber, Dem_FreezeFrameClassType const **freezeFrameClassPtr, uint16 *dataSize)\r
+{\r
+ Std_ReturnType callbackReturnCode;\r
+ boolean dataSizeFound = TRUE;\r
+ uint16 dataSizeLocal = 0;\r
+ uint16 i;\r
+\r
+ if (*freezeFrameClassPtr != NULL) {\r
+ for (i = 0; (i < DEM_MAX_NR_OF_RECORDS_IN_FREEZEFRAME_DATA) && ((*freezeFrameClassPtr)->FFIdClassRef[i].Arc_EOL != TRUE); i++) { \r
+ if((*freezeFrameClassPtr)->FFIdClassRef[i].DidReadDataLengthFnc != NULL){\r
+ callbackReturnCode = (*freezeFrameClassPtr)->FFIdClassRef[i].DidReadDataLengthFnc(&dataSizeLocal);\r
+ if(callbackReturnCode != E_OK){\r
+ return (dataSizeFound = FALSE); \r
+ }\r
+ }\r
+ else{\r
+ dataSizeLocal = (*freezeFrameClassPtr)->FFIdClassRef[i].PidOrDidSize;\r
+ }\r
+ \r
+ *dataSize += dataSizeLocal + DEM_DID_IDENTIFIER_SIZE_OF_BYTES;\r
+ }\r
+\r
+ }\r
+\r
+ return dataSizeFound;\r
+}\r
+\r
+/*\r
+ * Procedure: lookupFreezeFrameDataPriMem\r
+ * Description: Returns TRUE if the requested event id is found, "freezeFrame" points to the found data.\r
+ */\r
+static boolean lookupFreezeFrameDataPriMem(Dem_EventIdType eventId,uint8 recordNumber, FreezeFrameRecType **freezeFrame)\r
+{\r
+ boolean eventIdFound = FALSE;\r
+ uint16 i;\r
+\r
+ for (i = 0; (i < DEM_MAX_NUMBER_FF_DATA_PRI_MEM) && (!eventIdFound); i++) {\r
+ eventIdFound = ((priMemFreezeFrameBuffer[i].eventId == eventId) && (priMemFreezeFrameBuffer[i].recordNumber == recordNumber));\r
+ }\r
+\r
+ if (eventIdFound) {\r
+ *freezeFrame = &priMemFreezeFrameBuffer[i-1];\r
+ }\r
+\r
+ return eventIdFound;\r
+}\r
\r
/*\r
* Procedure: handlePreInitEvent\r
FreezeFrameRecType freezeFrameLocal;\r
ExtDataRecType extendedDataLocal;\r
\r
- // Find configuration for this event\r
lookupEventIdParameter(eventId, &eventParam);\r
if (eventParam != NULL) {\r
if (eventParam->EventClass->OperationCycleRef < DEM_OPERATION_CYCLE_ID_ENDMARK) {\r
}\r
\r
if (eventStatusLocal.errorStatusChanged) {\r
-\r
if (eventStatusLocal.eventStatusExtended & DEM_TEST_FAILED) {\r
- // Collect freeze frame data\r
- getFreezeFrameData(eventParam, &freezeFrameLocal);\r
- if (freezeFrameLocal.eventId != DEM_EVENT_ID_NULL) {\r
- storeFreezeFrameDataPreInit(eventParam, &freezeFrameLocal);\r
- }\r
-\r
- // Collect extended data\r
getExtendedData(eventParam, &extendedDataLocal);\r
if (extendedDataLocal.eventId != DEM_EVENT_ID_NULL) {\r
storeExtendedDataPreInit(eventParam, &extendedDataLocal);\r
}\r
+ getFreezeFrameData(eventParam, &freezeFrameLocal,eventStatus,&eventStatusLocal);\r
+ if (freezeFrameLocal.eventId != DEM_EVENT_ID_NULL) {\r
+ storeFreezeFrameDataPreInit(eventParam, &freezeFrameLocal);\r
+ }\r
}\r
}\r
+\r
+ \r
}\r
else {\r
// Operation cycle not started\r
EventStatusRecType eventStatusLocal;\r
FreezeFrameRecType freezeFrameLocal;\r
ExtDataRecType extendedDataLocal;\r
+ Dem_EventStatusType eventStatusTemp = eventStatus;\r
\r
- // Find configuration for this event\r
lookupEventIdParameter(eventId, &eventParam);\r
if (eventParam != NULL) {\r
if (eventParam->EventClass->OperationCycleRef < DEM_OPERATION_CYCLE_ID_ENDMARK) {\r
if ((!((disableDtcStorage.storageDisabled) && (checkDtcGroup(disableDtcStorage.dtcGroup, eventParam)) && (checkDtcKind(disableDtcStorage.dtcKind, eventParam))))) {\r
updateEventStatusRec(eventParam, eventStatus, TRUE, &eventStatusLocal);\r
if (eventStatusLocal.errorStatusChanged) {\r
+ storeEventEvtMem(eventParam, &eventStatusLocal); /** @req DEM184 */\r
if (eventStatusLocal.eventStatusExtended & DEM_TEST_FAILED) {\r
- storeEventEvtMem(eventParam, &eventStatusLocal); /** @req DEM184 */\r
- // Collect freeze frame data\r
- getFreezeFrameData(eventParam, &freezeFrameLocal);\r
- if (freezeFrameLocal.eventId != DEM_EVENT_ID_NULL) {\r
- storeFreezeFrameDataEvtMem(eventParam, &freezeFrameLocal); /** @req DEM190 */\r
- }\r
-\r
- // Collect extended data\r
getExtendedData(eventParam, &extendedDataLocal);\r
if (extendedDataLocal.eventId != DEM_EVENT_ID_NULL)\r
{\r
storeExtendedDataEvtMem(eventParam, &extendedDataLocal);\r
}\r
}\r
- }\r
+\r
+ if ((eventStatusTemp == DEM_EVENT_STATUS_PREFAILED)\r
+ || (eventStatusLocal.eventStatusExtended & DEM_TEST_FAILED)){\r
+ getFreezeFrameData(eventParam, &freezeFrameLocal,eventStatus,&eventStatusLocal);\r
+ if (freezeFrameLocal.eventId != DEM_EVENT_ID_NULL) {\r
+ storeFreezeFrameDataEvtMem(eventParam, &freezeFrameLocal); /** @req DEM190 */\r
+ }\r
+ }\r
+ else{\r
+ // do nothing\r
+ }\r
+ } \r
}\r
}\r
else {\r
\r
return returnCode;\r
}\r
+/*\r
+ * Procedure: deleteEventMemory\r
+ * Description: If aging of an event occurs, the Dem module shall delete the event from \r
+ * the event memory including its event related data\r
+ */\r
+static void deleteEventMemory(const Dem_EventParameterType *eventParam)\r
+{\r
+ uint16 i;\r
+\r
+ for (i = 0; (i < DEM_MAX_NR_OF_EVENT_DESTINATION) && (eventParam->EventClass->EventDestination[i] != DEM_EVENT_DESTINATION_END_OF_LIST); i++) {\r
+ switch (eventParam->EventClass->EventDestination[i])\r
+ {\r
+ case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
+ deleteEventPriMem(eventParam);\r
+ deleteFreezeFrameDataPriMem(eventParam);\r
+ deleteExtendedDataPriMem(eventParam);\r
+ storeFreezeFrameDataPerMem();\r
+ break;\r
+\r
+ case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
+ //TODO:need to add corresponding event and extended deleting functions\r
+\r
+ break;\r
+\r
+ case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
+ case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
+ // Not yet supported\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GLOBAL_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ }\r
+\r
+}\r
+/*\r
+ * Procedure: lookupAgingRecPriMem\r
+ * Description: Returns the pointer to event id parameters of "eventId" in "*priMemAgingBuffer",\r
+ * if not found NULL is returned.\r
+ */\r
+static boolean lookupAgingRecPriMem(Dem_EventIdType eventId, const HealingRecType **agingRec)\r
+{\r
+ uint16 i;\r
+ boolean agingRecFound = FALSE;\r
+ \r
+ for (i = 0; i < DEM_MAX_NUMBER_AGING_PRI_MEM && (!agingRecFound); i++) {\r
+ if(priMemAgingBuffer[i].eventId == eventId){\r
+ agingRecFound = TRUE;\r
+ }\r
+\r
+ }\r
+\r
+ if(agingRecFound){\r
+ *agingRec = &priMemAgingBuffer[i-1];\r
+ }\r
+ else{\r
+ *agingRec = NULL;\r
+ }\r
+\r
+ return agingRecFound;\r
+\r
+}\r
+\r
+\r
+/*\r
+ * Procedure: handleAging\r
+ * Description: according to the operation state of "operationCycleId" to "cycleState" , handle the aging relatived data\r
+ * Returns E_OK if operation was successful else E_NOT_OK.\r
+ */\r
+static Std_ReturnType handleAging(Dem_OperationCycleIdType operationCycleId, Dem_OperationCycleStateType cycleState)\r
+{\r
+ uint16 i;\r
+ Std_ReturnType returnCode = E_OK;\r
+ HealingRecType *agingRecLocal = NULL;\r
+ boolean agingRecFound = FALSE;\r
+\r
+ if (operationCycleId < DEM_OPERATION_CYCLE_ID_ENDMARK) {\r
+ switch (cycleState)\r
+ {\r
+ case DEM_CYCLE_STATE_START:\r
+ break;\r
+\r
+ case DEM_CYCLE_STATE_END:/** @req Dem490 */\r
+ for (i = 0; i < DEM_MAX_NUMBER_EVENT; i++) {\r
+ if(eventStatusBuffer[i].eventId != DEM_EVENT_ID_NULL){\r
+ if(eventStatusBuffer[i].eventParamRef != NULL){\r
+ if(eventStatusBuffer[i].eventParamRef->EventClass != NULL){\r
+ if((eventStatusBuffer[i].eventParamRef->EventClass->HealingAllowed == TRUE)\\r
+ && (eventStatusBuffer[i].eventParamRef->EventClass->HealingCycleRef == operationCycleId)){\r
+ if((eventStatusBuffer[i].eventStatusExtended & DEM_CONFIRMED_DTC)\\r
+ && (!(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_FAILED))\\r
+ && (!(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE))){\r
+ agingRecFound = lookupAgingRecPriMem(eventStatusBuffer[i].eventId, (const HealingRecType **)(&agingRecLocal));\r
+ if(agingRecFound){\r
+ agingRecLocal->agingCounter++;/** @req Dem489 */\r
+ agingRecLocal->checksum = calcChecksum(agingRecLocal,sizeof(HealingRecType) - sizeof(ChecksumType));\r
+ if(agingRecLocal->agingCounter > eventStatusBuffer[i].eventParamRef->EventClass->HealingCycleCounter){\r
+ //deleteEventMemory(eventStatusBuffer[i].eventParamRef); /** @req Dem497 */\r
+\r
+ deleteAgingRecPriMem(eventStatusBuffer[i].eventParamRef);\r
+\r
+ eventStatusBuffer[i].eventStatusExtended &= (Dem_EventStatusExtendedType)(~DEM_CONFIRMED_DTC);\r
+ eventStatusBuffer[i].eventStatusExtended &= (Dem_EventStatusExtendedType)(~DEM_PENDING_DTC);\r
+ eventStatusBuffer[i].eventStatusExtended &= (Dem_EventStatusExtendedType)(~DEM_WARNING_INDICATOR_REQUESTED);\r
+ }\r
+ /* Set the flag,start up the storage of NVRam in main function. */\r
+ AgingIsModified = TRUE;\r
+ }\r
+ else{\r
+ /* If it does exist,establish a new record for the corresponding event */\r
+ agingRecFound = lookupAgingRecPriMem(DEM_EVENT_ID_NULL, (const HealingRecType **)(&agingRecLocal));\r
+ if(agingRecFound){\r
+ agingRecLocal->eventId = eventStatusBuffer[i].eventId;\r
+ agingRecLocal->agingCounter++;\r
+ agingRecLocal->checksum = calcChecksum(agingRecLocal,sizeof(HealingRecType) - sizeof(ChecksumType));\r
+ AgingIsModified = TRUE;\r
+ }\r
+ else{\r
+ /* primary memory of aging records is full. */\r
+ }\r
+ }\r
+ }\r
+ else{\r
+ /* If the status bit testFailed (bit 0) is set during the operation cycle, the counter shall be reset. */\r
+ if(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_FAILED){\r
+ agingRecFound = lookupAgingRecPriMem(eventStatusBuffer[i].eventId, (const HealingRecType **)(&agingRecLocal));\r
+ if(agingRecFound){\r
+ if(agingRecLocal->agingCounter){\r
+ agingRecLocal->agingCounter = 0;\r
+ agingRecLocal->checksum = calcChecksum(agingRecLocal,sizeof(HealingRecType) - sizeof(ChecksumType));\r
+ AgingIsModified = TRUE;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ break;\r
+ default:\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_PARAM_DATA);\r
+ returnCode = E_NOT_OK;\r
+ break;\r
+ }\r
+ }\r
+ else {\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_SETOPERATIONCYCLESTATE_ID, DEM_E_PARAM_DATA);\r
+ returnCode = E_NOT_OK;\r
+ }\r
+\r
+ return returnCode;\r
\r
+}\r
\r
/*\r
* Procedure: setOperationCycleState\r
if ((eventStatusBuffer[i].eventId != DEM_EVENT_ID_NULL) && (eventStatusBuffer[i].eventParamRef->EventClass->OperationCycleRef == operationCycleId)) {\r
if ((!(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_FAILED_THIS_OPERATION_CYCLE)) && (!(eventStatusBuffer[i].eventStatusExtended & DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE))) {\r
eventStatusBuffer[i].eventStatusExtended &= (Dem_EventStatusExtendedType)~DEM_PENDING_DTC; // Clear pendingDTC bit /** @req DEM379.PendingClear\r
+ storeEventEvtMem(eventStatusBuffer[i].eventParamRef, &eventStatusBuffer[i]);\r
}\r
}\r
}\r
/** @req DEM180 */\r
uint16 i, j;\r
\r
+ EventStatusRecType *eventStatusRecPtr;\r
+ const Dem_EventParameterType *eventIdParamList;\r
+\r
VALIDATE_NO_RV(DEM_Config.ConfigSet != NULL, DEM_PREINIT_ID, DEM_E_CONFIG_PTR_INVALID);\r
\r
configSet = DEM_Config.ConfigSet;\r
eventStatusBuffer[i].errorStatusChanged = FALSE;\r
}\r
\r
+ // Insert all supported events into event status buffer\r
+ uint16 index = 0;\r
+ eventIdParamList = configSet->EventParameter;\r
+ while( !eventIdParamList[index].Arc_EOL ) {\r
+ // Find next free position in event status buffer\r
+ lookupEventStatusRec(DEM_EVENT_ID_NULL, &eventStatusRecPtr);\r
+ if(NULL != eventStatusRecPtr) {\r
+ eventStatusRecPtr->eventId = eventIdParamList[index].EventID;\r
+ eventStatusRecPtr->eventParamRef = &eventIdParamList[index];\r
+ } else {\r
+ // event status buffer is full\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_PREINIT_ID, DEM_E_EVENT_STATUS_BUFF_FULL);\r
+ }\r
+ index++;\r
+ }\r
+\r
//lint -save\r
//lint -e568 -e685 //PC-Lint exception.\r
//lint -e681 //PC-Lint exception to MISRA 14.1: Loop is not entered. This only happens when config variable is zero. Keep as it is for less complex code.\r
{\r
uint16 i;\r
ChecksumType cSum;\r
+ boolean entryValid = FALSE;\r
const Dem_EventParameterType *eventParam;\r
\r
- /*\r
- * Validate and read out saved error log from non volatile memory\r
- */\r
+ if(DEM_PREINITIALIZED != demState){\r
+ /*\r
+ * Dem_PreInit was has not been called since last time Dem_Shutdown was called.\r
+ * This suggests that we are resuming from sleep. According to section 5.7 in\r
+ * EcuM specification, RAM content is assumed to be still valid from the previous cycle.\r
+ * Do not read from saved error log since buffers already contains this data.\r
+ */\r
+ (void)setOperationCycleState(DEM_ACTIVE, DEM_CYCLE_STATE_START);\r
+\r
+ } else {\r
\r
- // Validate event records stored in primary memory\r
- for (i = 0; i < DEM_MAX_NUMBER_EVENT_PRI_MEM; i++) {\r
- cSum = calcChecksum(&priMemEventBuffer[i], sizeof(EventRecType)-sizeof(ChecksumType));\r
- if ((cSum != priMemEventBuffer[i].checksum) || (priMemEventBuffer[i].eventId == DEM_EVENT_ID_NULL)) {\r
- // Unlegal record, clear the record\r
- memset(&priMemEventBuffer[i], 0, sizeof(EventRecType));\r
+ for(i = 0; i < DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++){\r
+ if( E_NOT_OK == copyNvmMirror(FreezeFrameBlockId[i], (uint8 *)&priMemFreezeFrameBuffer[i], (const uint8 *)&FreezeFrameMirrorBuffer[i], sizeof(FreezeFrameRecType)) ){\r
+ //TODO:NVM is busy or block id is 0,report error or what?\r
+ }\r
}\r
- else {\r
- // Valid, update current status\r
- mergeEventStatusRec(&priMemEventBuffer[i]);\r
+ //recover Aging from NVRam to RAM\r
+ if(E_OK == copyNvmMirror(HealingBlockId, (uint8*)priMemAgingBuffer, (const uint8*)HealingMirrorBuffer, sizeof(priMemAgingBuffer)) ){\r
\r
- // Update occurrence counter on pre init stored freeze frames\r
- updateFreezeFrameOccurrencePreInit(&priMemEventBuffer[i]);\r
}\r
- }\r
\r
- // Validate extended data records stored in primary memory\r
- for (i = 0; i < DEM_MAX_NUMBER_EXT_DATA_PRI_MEM; i++) {\r
- cSum = calcChecksum(&priMemExtDataBuffer[i], sizeof(ExtDataRecType)-sizeof(ChecksumType));\r
- if ((cSum != priMemExtDataBuffer[i].checksum) || (priMemExtDataBuffer[i].eventId == DEM_EVENT_ID_NULL)) {\r
- // Unlegal record, clear the record\r
- memset(&priMemExtDataBuffer[i], 0, sizeof(ExtDataRecType));\r
+ // Validate aging records stored in primary memory\r
+ for (i = 0; i < DEM_MAX_NUMBER_AGING_PRI_MEM; i++){\r
+ entryValid = checkEntryValid(priMemAgingBuffer[i].eventId);\r
+ cSum = calcChecksum(&priMemAgingBuffer[i], sizeof(HealingRecType) - sizeof(ChecksumType));\r
+ if ((cSum != priMemAgingBuffer[i].checksum) || (priMemAgingBuffer[i].eventId == DEM_EVENT_ID_NULL) || (FALSE == entryValid)) {\r
+ // Unlegal record, clear the record\r
+ memset(&priMemAgingBuffer[i], 0, sizeof(HealingRecType));\r
+ AgingIsModified = TRUE;\r
+ }\r
}\r
- }\r
\r
- //lint -save\r
- //lint -e568 //PC-Lint exception.\r
- //lint -e685 //PC-Lint exception.\r
- //lint -e681 //PC-Lint exception to MISRA 14.1: Loop is not entered. This only happens when DEM_MAX_NUMBER_FF_DATA_PRE_INIT is zero. Keep as it is for less complex code.\r
- // Validate freeze frame records stored in primary memory\r
- for (i = 0; i < DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++) {\r
- cSum = calcChecksum(&priMemFreezeFrameBuffer[i], sizeof(FreezeFrameRecType)-sizeof(ChecksumType));\r
- if ((cSum != priMemFreezeFrameBuffer[i].checksum) || (priMemFreezeFrameBuffer[i].eventId == DEM_EVENT_ID_NULL)) {\r
- // Unlegal record, clear the record\r
- memset(&priMemFreezeFrameBuffer[i], 0, sizeof(FreezeFrameRecType));\r
+ // Validate event records stored in primary memory\r
+ for (i = 0; i < DEM_MAX_NUMBER_EVENT_PRI_MEM; i++) {\r
+ entryValid = checkEntryValid(priMemEventBuffer[i].eventId);\r
+ cSum = calcChecksum(&priMemEventBuffer[i], sizeof(EventRecType)-sizeof(ChecksumType));\r
+ if ((cSum != priMemEventBuffer[i].checksum) || (priMemEventBuffer[i].eventId == DEM_EVENT_ID_NULL) || (FALSE == entryValid)) {\r
+ // Unlegal record, clear the record\r
+ memset(&priMemEventBuffer[i], 0, sizeof(EventRecType));\r
+ }\r
+ else {\r
+ // Valid, update current status\r
+ mergeEventStatusRec(&priMemEventBuffer[i]);\r
+\r
+ // Update occurrence counter on pre init stored freeze frames\r
+ updateFreezeFrameOccurrencePreInit(&priMemEventBuffer[i]);\r
+ }\r
}\r
- }\r
- //lint -restore\r
\r
- /*\r
- * Handle errors stored in temporary buffer (if any)\r
- */\r
+ //initialize the current timestamp and update the timestamp in pre init\r
+ initCurrentFreezeFrameTimeStamp(&FF_TimeStamp);\r
\r
- // Transfer updated event data to event memory\r
- for (i = 0; i < DEM_MAX_NUMBER_EVENT; i++) {\r
- if (eventStatusBuffer[i].eventId != DEM_EVENT_ID_NULL) {\r
- // Update the event memory\r
- lookupEventIdParameter(eventStatusBuffer[i].eventId, &eventParam);\r
- storeEventEvtMem(eventParam, &eventStatusBuffer[i]);\r
+ // Validate extended data records stored in primary memory\r
+ for (i = 0; i < DEM_MAX_NUMBER_EXT_DATA_PRI_MEM; i++) {\r
+ entryValid = checkEntryValid(priMemExtDataBuffer[i].eventId);\r
+ cSum = calcChecksum(&priMemExtDataBuffer[i], sizeof(ExtDataRecType)-sizeof(ChecksumType));\r
+ if ((cSum != priMemExtDataBuffer[i].checksum) || (priMemExtDataBuffer[i].eventId == DEM_EVENT_ID_NULL) || (FALSE == entryValid)) {\r
+ // Unlegal record, clear the record\r
+ memset(&priMemExtDataBuffer[i], 0, sizeof(ExtDataRecType));\r
+ }\r
}\r
- }\r
\r
- // Transfer extended data to event memory if necessary\r
- for (i = 0; i < DEM_MAX_NUMBER_EXT_DATA_PRE_INIT; i++) {\r
- if (preInitExtDataBuffer[i].eventId != DEM_EVENT_ID_NULL) {\r
- lookupEventIdParameter(preInitExtDataBuffer[i].eventId, &eventParam);\r
- storeExtendedDataEvtMem(eventParam, &preInitExtDataBuffer[i]);\r
+ //initialize the current timestamp and update the timestamp in pre init\r
+ initCurrentFreezeFrameTimeStamp(&FF_TimeStamp);\r
+\r
+ //lint -save\r
+ //lint -e568 //PC-Lint exception.\r
+ //lint -e685 //PC-Lint exception.\r
+ //lint -e681 //PC-Lint exception to MISRA 14.1: Loop is not entered. This only happens when DEM_MAX_NUMBER_FF_DATA_PRE_INIT is zero. Keep as it is for less complex code.\r
+ // Validate freeze frame records stored in primary memory\r
+ for (i = 0; i < DEM_MAX_NUMBER_FF_DATA_PRI_MEM; i++) {\r
+ entryValid = checkEntryValid(priMemFreezeFrameBuffer[i].eventId);\r
+ cSum = calcChecksum(&priMemFreezeFrameBuffer[i], sizeof(FreezeFrameRecType)-sizeof(ChecksumType));\r
+ if ((cSum != priMemFreezeFrameBuffer[i].checksum) || (priMemFreezeFrameBuffer[i].eventId == DEM_EVENT_ID_NULL) || (FALSE == entryValid)) {\r
+ // Unlegal record, clear the record\r
+ memset(&priMemFreezeFrameBuffer[i], 0, sizeof(FreezeFrameRecType));\r
+ }\r
}\r
- }\r
+ //lint -restore\r
\r
- //lint -save\r
- //lint -e568 //PC-Lint exception.\r
- //lint -e685 //PC-Lint exception.\r
- //lint -e681 //PC-Lint exception to MISRA 14.1: Loop is not entered. This only happens when DEM_MAX_NUMBER_FF_DATA_PRE_INIT is zero. Keep as it is for less complex code.\r
- // Transfer freeze frames to event memory\r
- for (i = 0; i < DEM_MAX_NUMBER_FF_DATA_PRE_INIT; i++) {\r
- if (preInitFreezeFrameBuffer[i].eventId != DEM_EVENT_ID_NULL) {\r
- lookupEventIdParameter(preInitFreezeFrameBuffer[i].eventId, &eventParam);\r
- storeFreezeFrameDataEvtMem(eventParam, &preInitFreezeFrameBuffer[i]);\r
+ /* Transfer updated event data to event memory */\r
+ for (i = 0; i < DEM_MAX_NUMBER_EVENT; i++) {\r
+ if (eventStatusBuffer[i].eventId != DEM_EVENT_ID_NULL) {\r
+ lookupEventIdParameter(eventStatusBuffer[i].eventId, &eventParam);\r
+ storeEventEvtMem(eventParam, &eventStatusBuffer[i]);\r
+ }\r
}\r
+\r
+ /* Transfer extended data to event memory if necessary */\r
+ for (i = 0; i < DEM_MAX_NUMBER_EXT_DATA_PRE_INIT; i++) {\r
+ if (preInitExtDataBuffer[i].eventId != DEM_EVENT_ID_NULL) {\r
+ lookupEventIdParameter(preInitExtDataBuffer[i].eventId, &eventParam);\r
+ storeExtendedDataEvtMem(eventParam, &preInitExtDataBuffer[i]);\r
+ }\r
+ }\r
+\r
+ //lint -save\r
+ //lint -e568 //PC-Lint exception.\r
+ //lint -e685 //PC-Lint exception.\r
+ //lint -e681 //PC-Lint exception to MISRA 14.1: Loop is not entered. This only happens when DEM_MAX_NUMBER_FF_DATA_PRE_INIT is zero. Keep as it is for less complex code.\r
+ /* Transfer freeze frames to event memory */\r
+ for (i = 0; i < DEM_MAX_NUMBER_FF_DATA_PRE_INIT; i++) {\r
+ if (preInitFreezeFrameBuffer[i].eventId != DEM_EVENT_ID_NULL) {\r
+ lookupEventIdParameter(preInitFreezeFrameBuffer[i].eventId, &eventParam);\r
+ storeFreezeFrameDataEvtMem(eventParam, &preInitFreezeFrameBuffer[i]);\r
+ }\r
+ }\r
+ //lint -restore\r
}\r
- //lint -restore\r
\r
// Init the dtc filter\r
dtcFilter.dtcStatusMask = DEM_DTC_STATUS_MASK_ALL; // All allowed\r
{\r
(void)setOperationCycleState(DEM_ACTIVE, DEM_CYCLE_STATE_END); /** @req DEM047 */\r
\r
+ /* handleAging() should be called behind setOperationCycleState() */\r
+ (void)handleAging(DEM_ACTIVE, DEM_CYCLE_STATE_END);\r
+\r
demState = DEM_UNINITIALIZED; /** @req DEM368 */\r
}\r
\r
/*\r
* Interface for basic software scheduler\r
*/\r
-void Dem_MainFunction(void)\r
-{\r
- /** @req DEM125 */\r
+void Dem_MainFunction(void)/** @req DEM125 */\r
+{ \r
+ if (FFIsModified) {\r
+ storeFreezeFrameDataPerMem(FreezeFrameBlockId);\r
+ }\r
\r
+ if (AgingIsModified) {\r
+ storeAgingRecPerMem(HealingBlockId);\r
+ }\r
}\r
\r
\r
if (demState == DEM_INITIALIZED) // No action is taken if the module is not started\r
{\r
returnCode = setOperationCycleState(operationCycleId, cycleState);\r
+ (void)handleAging(operationCycleId, cycleState);\r
\r
}\r
else\r
* Procedure: Dem_ReportErrorStatus\r
* Reentrant: Yes\r
*/\r
-void Dem_ReportErrorStatus( Dem_EventIdType eventId, Dem_EventStatusType eventStatus ) /** @req DEM107 */\r
+void Dem_ReportErrorStatus( Dem_EventIdType eventId, Dem_EventStatusType eventStatus ) /** @req DEM107 *//** @req DEM206 */\r
{\r
\r
switch (demState) {\r
*dtcStatusMask &= DEM_TEST_FAILED // Mask with supported bits /** @req DEM060 */\r
| DEM_TEST_FAILED_THIS_OPERATION_CYCLE\r
| DEM_PENDING_DTC\r
-// | DEM_CONFIRMED_DTC TODO: Add support for this bit\r
+ | DEM_CONFIRMED_DTC\r
| DEM_TEST_NOT_COMPLETED_SINCE_LAST_CLEAR\r
| DEM_TEST_FAILED_SINCE_LAST_CLEAR\r
| DEM_TEST_NOT_COMPLETED_THIS_OPERATION_CYCLE\r
* Procedure: Dem_ClearDTC\r
* Reentrant: No\r
*/\r
-Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin) /** @req DEM009 */\r
+Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin) /** @req DEM009 *//** @req DEM241 */\r
{\r
Dem_ReturnClearDTCType returnCode = DEM_CLEAR_OK;\r
Dem_EventIdType eventId;\r
uint16 i, j;\r
\r
if (demState == DEM_INITIALIZED) {\r
- // Loop through the event buffer\r
for (i = 0; i < DEM_MAX_NUMBER_EVENT; i++) {\r
eventId = eventStatusBuffer[i].eventId;\r
if (eventId != DEM_EVENT_ID_NULL) {\r
for (j = 0; (j < DEM_MAX_NR_OF_EVENT_DESTINATION) && (!dtcOriginFound) ; j++){\r
dtcOriginFound =(eventParam->EventClass->EventDestination[j] == dtcOrigin);\r
}\r
- //if (j-1 < DEM_MAX_NR_OF_EVENT_DESTINATION) {\r
if (dtcOriginFound) {\r
- // Yes! All conditions met.\r
switch (dtcOrigin)\r
{\r
case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
deleteEventPriMem(eventParam);\r
deleteFreezeFrameDataPriMem(eventParam);\r
deleteExtendedDataPriMem(eventParam);\r
- deleteEventStatusRec(eventParam); // TODO: Shall this be done or just resetting the status?\r
+ resetEventStatusRec(eventParam);\r
+ storeFreezeFrameDataPerMem();\r
break;\r
-\r
- case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
+ \r
case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
+ \r
+ break;\r
+ \r
+ case DEM_DTC_ORIGIN_SECONDARY_MEMORY: \r
case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
// Not yet supported\r
returnCode = DEM_CLEAR_WRONG_DTCORIGIN;\r
return returnCode;\r
}\r
\r
+/*\r
+ * Procedure: Dem_GetFreezeFrameDataByDTC\r
+ * Reentrant: No\r
+ */\r
+/** @req DEM236 */ \r
+Dem_ReturnGetFreezeFrameDataByDTCType Dem_GetFreezeFrameDataByDTC(uint32 dtc,Dem_DTCKindType dtcKind,Dem_DTCOriginType dtcOrigin,uint8 recordNumber,uint8* destBuffer,uint8* bufSize)\r
+{\r
+ Dem_ReturnGetFreezeFrameDataByDTCType returnCode = DEM_GET_FFDATABYDTC_WRONG_DTC;\r
+ EventStatusRecType *eventRec;\r
+ Dem_FreezeFrameClassType const *FFDataRecordClass = NULL;\r
+ FreezeFrameRecType *freezeframe;\r
+ uint16 FFDataSize = 0;\r
+\r
+ if (demState == DEM_INITIALIZED) {\r
+ if (lookupDtcEvent(dtc, &eventRec)) {\r
+ if (checkDtcKind(dtcKind, eventRec->eventParamRef)) {\r
+ if (checkDtcOrigin(dtcOrigin, eventRec->eventParamRef)) {\r
+ if (lookupFreezeFrameDataRecNumParam(recordNumber, eventRec->eventParamRef, &FFDataRecordClass)) {\r
+ if(lookupFreezeFrameDataSize(recordNumber, &FFDataRecordClass, &FFDataSize)){\r
+ if (*bufSize >= FFDataSize) {\r
+ switch (dtcOrigin)\r
+ {\r
+ case DEM_DTC_ORIGIN_PRIMARY_MEMORY:\r
+ if (lookupFreezeFrameDataPriMem(eventRec->eventId,recordNumber, &freezeframe)) {\r
+ memcpy(destBuffer, freezeframe->data, FFDataSize); /** @req DEM071 */\r
+ *bufSize = FFDataSize;\r
+ returnCode = DEM_GET_FFDATABYDTC_OK;\r
+ }\r
+ else {\r
+ *bufSize = 0;\r
+ returnCode = DEM_GET_FFDATABYDTC_OK;\r
+ }\r
+ break;\r
+\r
+ case DEM_DTC_ORIGIN_SECONDARY_MEMORY:\r
+ case DEM_DTC_ORIGIN_PERMANENT_MEMORY:\r
+ case DEM_DTC_ORIGIN_MIRROR_MEMORY:\r
+ // Not yet supported\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GETFREEZEFRAMEDATARECORDBYDTC_ID, DEM_E_NOT_IMPLEMENTED_YET);\r
+ break;\r
+ default:\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
+ break;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_FFDATABYDTC_BUFFERSIZE;\r
+ }\r
+ }\r
+ else {\r
+ returnCode = DEM_GET_FFDATABYDTC_BUFFERSIZE;\r
+ }\r
+ }\r
+ else {\r
+ returnCode = DEM_GET_FFDATABYDTC_RECORDNUMBER;\r
+ }\r
+ }\r
+ else {\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCORIGIN;\r
+ }\r
+ }\r
+ else {\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTCKIND;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_FFDATABYDTC_WRONG_DTC;\r
+\r
+ }\r
+ } else {\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GETFREEZEFRAMEDATARECORDBYDTC_ID, DEM_E_UNINIT);\r
+ returnCode = DEM_GET_ID_PENDING;\r
+ }\r
+\r
+ return returnCode;\r
+\r
+\r
+}\r
+\r
+/*\r
+ * Procedure: Dem_GetFreezeFrameDataIdentifierByDTC\r
+ * Reentrant: No\r
+ */\r
+Dem_GetFreezeFameDataIdentifierByDTCType Dem_GetFreezeFrameDataIdentifierByDTC(uint32 dtc,\r
+ Dem_DTCKindType dtcKind,\r
+ Dem_DTCOriginType dtcOrigin,\r
+ uint8 recordNumber,\r
+ uint8* arraySize,\r
+ const uint16** dataId )/** @req DEM237 */\r
+{\r
+ Dem_GetFreezeFameDataIdentifierByDTCType returnCode = DEM_GET_ID_WRONG_FF_TYPE;\r
+ Dem_FreezeFrameClassType const *FFDataRecordClass = NULL;\r
+ EventStatusRecType *eventRec;\r
+ uint8 didNum = 0;\r
+ uint16 i = 0;\r
+ if (demState == DEM_INITIALIZED) {\r
+ if (lookupDtcEvent(dtc, &eventRec)) {\r
+ if (checkDtcKind(dtcKind, eventRec->eventParamRef)) {\r
+ if (checkDtcOrigin(dtcOrigin, eventRec->eventParamRef)) {\r
+ if (lookupFreezeFrameDataRecNumParam(recordNumber, eventRec->eventParamRef, &FFDataRecordClass)) {\r
+ if(FFDataRecordClass->FFIdClassRef != NULL){\r
+ for(i=0; (i < DEM_MAX_NR_OF_RECORDS_IN_FREEZEFRAME_DATA) && (!(FFDataRecordClass->FFIdClassRef[i].Arc_EOL)); i++){\r
+ if(didNum < *arraySize){\r
+ dataId[didNum] = &FFDataRecordClass->FFIdClassRef[i].DidIdentifier;/** @req DEM073 */\r
+ didNum++;\r
+ returnCode = DEM_GET_ID_OK;\r
+ }else{\r
+ returnCode = DEM_GET_ID_WRONG_FF_TYPE;\r
+ }\r
+ }\r
+ *arraySize = didNum;\r
+ }\r
+ \r
+ }\r
+ else{\r
+ returnCode = DEM_GET_ID_WRONG_FF_TYPE;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_ID_WRONG_DTCORIGIN;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_ID_WRONG_DTCKIND;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_ID_WRONG_DTC;\r
+ }\r
+ \r
+ } \r
+ else{\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GETFREEZEFRAMEDATAIDENTIFIERBYDTC_ID, DEM_E_UNINIT);\r
+ }\r
+\r
+ return returnCode;\r
+\r
+}\r
+\r
+/*\r
+ * Procedure: Dem_GetSizeOfFreezeFrame\r
+ * Reentrant: No\r
+ */\r
+ /** @req DEM238 */\r
+Dem_ReturnGetSizeOfFreezeFrameType Dem_GetSizeOfFreezeFrame(uint32 dtc,Dem_DTCKindType dtcKind,Dem_DTCOriginType dtcOrigin,uint8 recordNumber,uint16* sizeOfFreezeFrame) \r
+{\r
+ Dem_ReturnGetSizeOfFreezeFrameType returnCode = DEM_GET_SIZEOFFF_PENDING;\r
+ Dem_FreezeFrameClassType const *FFDataRecordClass = NULL;\r
+ Std_ReturnType callbackReturnCode;\r
+ EventStatusRecType *eventRec;\r
+ uint16 dataSize = 0;\r
+ uint16 i = 0;\r
+ \r
+ if (demState == DEM_INITIALIZED) {\r
+ if (lookupDtcEvent(dtc, &eventRec)) {\r
+ if (checkDtcKind(dtcKind, eventRec->eventParamRef)) {\r
+ if (checkDtcOrigin(dtcOrigin, eventRec->eventParamRef)) {\r
+ if (lookupFreezeFrameDataRecNumParam(recordNumber, eventRec->eventParamRef, &FFDataRecordClass)) {\r
+ if(FFDataRecordClass->FFIdClassRef != NULL){\r
+ for(i = 0; (i < DEM_MAX_NR_OF_RECORDS_IN_FREEZEFRAME_DATA) && (!(FFDataRecordClass->FFIdClassRef[i].Arc_EOL)); i++){\r
+ /* read out the did size */\r
+ if(FFDataRecordClass->FFIdClassRef[i].DidReadDataLengthFnc != NULL){\r
+ callbackReturnCode = FFDataRecordClass->FFIdClassRef[i].DidReadDataLengthFnc(&dataSize);\r
+ if(callbackReturnCode != E_OK){\r
+ return (returnCode = DEM_GET_SIZEOFFF_PENDING);\r
+ }\r
+ }\r
+ else{\r
+ dataSize = FFDataRecordClass->FFIdClassRef[i].PidOrDidSize;\r
+ }\r
+ *sizeOfFreezeFrame += dataSize+DEM_DID_IDENTIFIER_SIZE_OF_BYTES;/** @req DEM074 */\r
+ returnCode = DEM_GET_SIZEOFFF_OK; \r
+ } \r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_SIZEOFFF_WRONG_RNUM;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_SIZEOFFF_WRONG_DTCOR;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_SIZEOFFF_WRONG_DTCKIND;\r
+ }\r
+ }\r
+ else{\r
+ returnCode = DEM_GET_SIZEOFFF_WRONG_DTC;\r
+ }\r
+ \r
+ } \r
+ else{\r
+ DET_REPORTERROR(MODULE_ID_DEM, 0, DEM_GETFREEZEFRAMEDATAIDENTIFIERBYDTC_ID, DEM_E_UNINIT);\r
+ returnCode = DEM_GET_SIZEOFFF_PENDING;\r
+ }\r
+\r
+ return returnCode;\r
+\r
+\r
+}\r
+\r
+\r
+#ifdef DEM_UNIT_TEST\r
+void getFFDataPreInit(FreezeFrameRecType **buf)\r
+{\r
+ *buf = &preInitFreezeFrameBuffer[0];\r
+ return;\r
+}\r
+void getPriMemFFBufPtr(FreezeFrameRecType **buf)\r
+{\r
+ *buf = &priMemFreezeFrameBuffer[0];\r
+ return;\r
+}\r
+\r
+uint32 getCurTimeStamp()\r
+{\r
+ return FF_TimeStamp;\r
+}\r
+\r
+void getPriMemEventRecBufPtr(EventStatusRecType **buf)\r
+{\r
+ *buf = &eventStatusBuffer[0];\r
+ return;\r
+}\r
+\r
+void getPriMemAgingBufPtr(HealingRecType **buf)\r
+{\r
+ *buf = &priMemAgingBuffer[0];\r
+ return;\r
+}\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
/***********************************\r
* OBD-specific Interfaces (8.3.6) *\r
***********************************/\r
<PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Arguments</PORT-PROTOTYPE-REF>\r
<DATA-ELEMENT-REF DEST="DATA-ELEMENT-PROTOTYPE">/rte_simple_lib/Interfaces/ArgumentIf/arg1</DATA-ELEMENT-REF>\r
</DATA-ELEMENT-IREF>\r
- <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Arg1</SIGNAL-REF>\r
+ <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_lib/SystemSignals/Arg1</SIGNAL-REF>\r
</SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<DATA-ELEMENT-IREF>\r
<PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Arguments</PORT-PROTOTYPE-REF>\r
<DATA-ELEMENT-REF DEST="DATA-ELEMENT-PROTOTYPE">/rte_simple_lib/Interfaces/ArgumentIf/arg2</DATA-ELEMENT-REF>\r
</DATA-ELEMENT-IREF>\r
- <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Arg2</SIGNAL-REF>\r
+ <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_lib/SystemSignals/Arg2</SIGNAL-REF>\r
</SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<DATA-ELEMENT-IREF>\r
<PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/Result</PORT-PROTOTYPE-REF>\r
<DATA-ELEMENT-REF DEST="DATA-ELEMENT-PROTOTYPE">/rte_simple_lib/Interfaces/ResultIf/result</DATA-ELEMENT-REF>\r
</DATA-ELEMENT-IREF>\r
- <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/ResultSig</SIGNAL-REF>\r
+ <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_lib/SystemSignals/ResultSig</SIGNAL-REF>\r
</SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<DATA-ELEMENT-IREF>\r
<PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/FreqReq</PORT-PROTOTYPE-REF>\r
<DATA-ELEMENT-REF DEST="DATA-ELEMENT-PROTOTYPE">/rte_simple_lib/Interfaces/FreqReqIf/freq</DATA-ELEMENT-REF>\r
</DATA-ELEMENT-IREF>\r
- <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/FreqReqSig</SIGNAL-REF>\r
+ <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_lib/SystemSignals/FreqReqSig</SIGNAL-REF>\r
</SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
<DATA-ELEMENT-IREF>\r
<PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/rte_simple_extract/rte_simple_extract_toplevelcomposition/FreqReqInd</PORT-PROTOTYPE-REF>\r
<DATA-ELEMENT-REF DEST="DATA-ELEMENT-PROTOTYPE">/rte_simple_lib/Interfaces/FreqReqIf/freq</DATA-ELEMENT-REF>\r
</DATA-ELEMENT-IREF>\r
- <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_ti_tms570ls/GeneratedSystemSignals/FreqIndSig</SIGNAL-REF>\r
+ <SIGNAL-REF DEST="SYSTEM-SIGNAL">/rte_simple_lib/SystemSignals/FreqIndSig</SIGNAL-REF>\r
</SENDER-RECEIVER-TO-SIGNAL-MAPPING>\r
</DATA-MAPPINGS>\r
<SW-IMPL-MAPPINGS>\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt8</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt8</TYPE-TREF>\r
<DIRECTION>IN</DIRECTION>\r
</ARGUMENT-PROTOTYPE>\r
<ARGUMENT-PROTOTYPE UUID="b48f4f2b-f9e6-444c-b978-efe7411ad553">\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt8</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt8</TYPE-TREF>\r
<DIRECTION>IN</DIRECTION>\r
</ARGUMENT-PROTOTYPE>\r
<ARGUMENT-PROTOTYPE UUID="7021e210-7039-45cf-aa05-4f56012ce341">\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt16</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt16</TYPE-TREF>\r
<DIRECTION>OUT</DIRECTION>\r
</ARGUMENT-PROTOTYPE>\r
</ARGUMENTS>\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt8</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt8</TYPE-TREF>\r
</DATA-ELEMENT-PROTOTYPE>\r
<DATA-ELEMENT-PROTOTYPE UUID="7433b2c7-347a-4278-ac96-1db4b4451cde">\r
<SHORT-NAME>arg2</SHORT-NAME>\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt8</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt8</TYPE-TREF>\r
</DATA-ELEMENT-PROTOTYPE>\r
</DATA-ELEMENTS>\r
</SENDER-RECEIVER-INTERFACE>\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt16</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt16</TYPE-TREF>\r
</DATA-ELEMENT-PROTOTYPE>\r
</DATA-ELEMENTS>\r
</SENDER-RECEIVER-INTERFACE>\r
<SDG GID="Arccore::IdentifiableOptions" />\r
</SDGS>\r
</ADMIN-DATA>\r
- <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_ti_tms570ls/GeneratedSystemSignals/Data/UInt32</TYPE-TREF>\r
+ <TYPE-TREF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt32</TYPE-TREF>\r
</DATA-ELEMENT-PROTOTYPE>\r
</DATA-ELEMENTS>\r
</SENDER-RECEIVER-INTERFACE>\r
</SWC-IMPLEMENTATION>\r
</ELEMENTS>\r
</AR-PACKAGE>\r
+ <AR-PACKAGE UUID="3e16e6a8-c2ff-4266-8f2c-276afa37dc50">\r
+ <SHORT-NAME>SystemSignals</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <ELEMENTS>\r
+ <SYSTEM-SIGNAL UUID="5db60ee9-e91b-454b-81bb-24f0c3011885">\r
+ <SHORT-NAME>Arg1</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DATA-TYPE-REF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt8</DATA-TYPE-REF>\r
+ <LENGTH>8</LENGTH>\r
+ </SYSTEM-SIGNAL>\r
+ <SYSTEM-SIGNAL UUID="81fc2d93-168d-4a1c-bf18-dcf6557f898a">\r
+ <SHORT-NAME>Arg2</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DATA-TYPE-REF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt8</DATA-TYPE-REF>\r
+ <LENGTH>8</LENGTH>\r
+ </SYSTEM-SIGNAL>\r
+ <SYSTEM-SIGNAL UUID="d2012f74-c313-446e-8ab4-7abcc9e08d6e">\r
+ <SHORT-NAME>ResultSig</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DATA-TYPE-REF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt16</DATA-TYPE-REF>\r
+ <LENGTH>16</LENGTH>\r
+ </SYSTEM-SIGNAL>\r
+ <SYSTEM-SIGNAL UUID="55fa62b0-1724-438b-858e-977f952b2c63">\r
+ <SHORT-NAME>FreqIndSig</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DATA-TYPE-REF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt32</DATA-TYPE-REF>\r
+ <LENGTH>32</LENGTH>\r
+ </SYSTEM-SIGNAL>\r
+ <SYSTEM-SIGNAL UUID="dc34757f-b33e-4d1b-ade6-ef1f797e3af0">\r
+ <SHORT-NAME>FreqReqSig</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG GID="Arccore::IdentifiableOptions" />\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DATA-TYPE-REF DEST="INTEGER-TYPE">/rte_simple_lib/DatatypeKit/UInt32</DATA-TYPE-REF>\r
+ <LENGTH>32</LENGTH>\r
+ </SYSTEM-SIGNAL>\r
+ </ELEMENTS>\r
+ </AR-PACKAGE>\r
</SUB-PACKAGES>\r
</AR-PACKAGE>\r
</TOP-LEVEL-PACKAGES>\r
#define DCM_PROTOCOL_FUNCTIONAL_ADDR_TYPE 1\r
#define DCM_PROTOCOL_PHYSICAL_ADDR_TYPE 2\r
\r
+#define DCM_PROTOCAL_TP_MAX_LENGTH 0x1000\r
+\r
/*\r
* Callback function prototypes\r
*/\r
typedef struct {\r
const Dcm_DspSessionRowType **DspDidControlSessionRef; // (1..*) /** @req DCM621 */\r
const Dcm_DspSecurityRowType **DspDidControlSecurityLevelRef; // (1..*) /** @req DCM620 */\r
- const Dcm_DspDidControlRecordSizesType *DspDidFreezeCurrentState; // (0..1) /** @req DCM624 */\r
- const Dcm_DspDidControlRecordSizesType *DspDidResetToDefault; // (0..1) /** @req DCM623 */\r
- const Dcm_DspDidControlRecordSizesType *DspDidReturnControlToEcu; // (0..1) /** @req DCM622 */\r
- const Dcm_DspDidControlRecordSizesType *DspDidShortTermAdjustment; // (0..1) /** @req DCM625 */\r
+ const boolean DspDidFreezeCurrentState; // (0..1) /** @req DCM624 */\r
+ const boolean DspDidResetToDefault; // (0..1) /** @req DCM623 */\r
+ const boolean DspDidReturnControlToEcu; // (0..1) /** @req DCM622 */\r
+ const boolean DspDidShortTermAdjustment; // (0..1) /** @req DCM625 */\r
} Dcm_DspDidControlType; /** @req DCM619 */\r
\r
// 10.2.27\r
Dcm_CallbackGetInfoTypeValueFncType DspGetVehInfoTypeFnc; // (1) /** @req DCM633 */\r
} Dcm_DspVehInfoType; /** @req DCM630 */\r
\r
+// 10.2.21\r
+typedef struct {\r
+ uint32 MemoryAddressHigh;\r
+ uint32 MemoryAddressLow;\r
+ /*DcmDspMemoryRangeRuleRef * pRule;*/\r
+ const Dcm_DspSecurityRowType **pSecurityLevel;\r
+} Dcm_DspMemoryRangeInfo;\r
+\r
+typedef struct {\r
+ uint8 MemoryIdValue;\r
+ const Dcm_DspMemoryRangeInfo *pReadMemoryInfo;\r
+ const Dcm_DspMemoryRangeInfo *pWriteMemoryInfo;\r
+ boolean Arc_EOL;\r
+} Dcm_DspMemoryIdInfo;\r
+\r
+\r
+typedef struct {\r
+ boolean DcmDspUseMemoryId;\r
+ const Dcm_DspMemoryIdInfo *DspMemoryIdInfo;\r
+ \r
+}Dcm_DspMemoryType;\r
+\r
// 10.2.21\r
typedef struct {\r
uint8 DspMaxDidToRead; // (0..1) /** @req DCM638 */\r
const Dcm_DspSessionType *DspSession; // (1)\r
const Dcm_DspTestResultByObdmidType *DspTestResultByObdmid; // (0..*)\r
const Dcm_DspVehInfoType *DspVehInfo;\r
+ const Dcm_DspMemoryType *DspMemory;\r
} Dcm_DspType;\r
\r
/*******\r
uint8 responsePendingCount;\r
Dcm_SecLevelType securityLevel;\r
Dcm_SesCtrlType sessionControl;\r
+ Dcm_DslLocalBufferType PeriodicTxBuffer;\r
} Dcm_DslRunTimeProtocolParametersType;\r
\r
// 10.2.10\r
/*\r
* Make the DCM_Config visible for others.\r
*/\r
+\r
+\r
extern const Dcm_ConfigType DCM_Config;\r
\r
+\r
#endif /*DCM_LCFG_H_*/\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+#ifndef DCM_TYPES_H_\r
+#define DCM_TYPES_H_\r
+#include "Std_Types.h"\r
+\r
+/*\r
+ * Dcm_SecLevelType\r
+ */\r
+typedef uint8 Dcm_SecLevelType;\r
+#define DCM_SEC_LEV_LOCKED ((Dcm_SecLevelType)0x00)\r
+#define DCM_SEC_LEV_L1 ((Dcm_SecLevelType)0x01)\r
+#define DCM_SEC_LEV_ALL ((Dcm_SecLevelType)0xFF)\r
+\r
+/*\r
+ * Dcm_SesCtrlType\r
+ */\r
+typedef uint8 Dcm_SesCtrlType;\r
+#define DCM_DEFAULT_SESSION ((Dcm_SesCtrlType)0x01)\r
+#define DCM_PROGRAMMING_SESSION ((Dcm_SesCtrlType)0x02)\r
+#define DCM_EXTENDED_DIAGNOSTIC_SESSION ((Dcm_SesCtrlType)0x03)\r
+#define DCM_SAFTEY_SYSTEM_DIAGNOSTIC_SESSION ((Dcm_SesCtrlType)0x04)\r
+#define DCM_ALL_SESSION_LEVEL ((Dcm_SesCtrlType)0xFF)\r
+\r
+typedef uint8 Dcm_ConfirmationStatusType;\r
+#define DCM_RES_POS_OK ((Dcm_ConfirmationStatusType)0x00)\r
+#define DCM_RES_POS_NOT_OK ((Dcm_ConfirmationStatusType)0x01)\r
+#define DCM_RES_NEG_OK ((Dcm_ConfirmationStatusType)0x02)\r
+#define DECM_RES_NEG_NOT_OK ((Dcm_ConfirmationStatusType)0x03)\r
+\r
+/*\r
+ * Dcm_ProtocolType\r
+ */\r
+typedef uint8 Dcm_ProtocolType;\r
+#define DCM_OBD_ON_CAN ((Dcm_ProtocolType)0x00)\r
+#define DCM_UDS_ON_CAN ((Dcm_ProtocolType)0x01)\r
+#define DCM_UDS_ON_FLEAXRAY ((Dcm_ProtocolType)0x02)\r
+#define DCM_ROE_ON_CAN ((Dcm_ProtocolType)0x03)\r
+#define DCM_ROE_ON_FLEXRAY ((Dcm_ProtocolType)0x04)\r
+#define DCM_PERIODICTRANS_ON_CAN ((Dcm_ProtocolType)0x05)\r
+#define DCM_PERIODICTRANS_ON_FLEXRAY ((Dcm_ProtocolType)0x06)\r
+\r
+/*\r
+ * Dcm_ReturnReadMemoryType\r
+ */\r
+typedef uint8 Dcm_ReturnReadMemoryType;\r
+#define DCM_READ_OK ((Dcm_ReturnReadMemoryType)0x00)\r
+#define DCM_READ_PENDING ((Dcm_ReturnReadMemoryType)0x01)\r
+#define DCM_READ_FAILED ((Dcm_ReturnReadMemoryType)0x02)\r
+\r
+/*\r
+ * Dcm_ReturnWriteMemoryType\r
+ */\r
+typedef uint8 Dcm_ReturnWriteMemoryType;\r
+#define DCM_WRITE_OK ((Dcm_ReturnWriteMemoryType)0x00)\r
+#define DCM_WRITE_PENDING ((Dcm_ReturnWriteMemoryType)0x01)\r
+#define DCM_WRITE_FAILED ((Dcm_ReturnWriteMemoryType)0x02)\r
+\r
+/*\r
+ * Dcm_OpStatusType\r
+ */\r
+typedef uint8 Dcm_OpStatusType;\r
+#define DCM_INITIAL ((Dcm_OpStatusType)0x00)\r
+#define DCM_PENDING ((Dcm_OpStatusType)0X01)\r
+#define DCM_CANCEL ((Dcm_OpStatusType)0x02)\r
+#define DCM_FORCE_RCRRP_OK ((Dcm_OpStatusType)0X03)\r
+\r
+/*\r
+ * Dcm_NegativeResponseCodeType\r
+ */\r
+typedef uint8 Dcm_NegativeResponseCodeType;\r
+#define DCM_E_GENERALREJECT ((Dcm_NegativeResponseCodeType)0x10)\r
+#define DCM_E_BUSYREPEATREQUEST ((Dcm_NegativeResponseCodeType)0x21)\r
+#define DCM_E_CONDITIONSNOTCORRECT ((Dcm_NegativeResponseCodeType)0x22)\r
+#define DCM_E_REQUESTSEQUENCEERROR ((Dcm_NegativeResponseCodeType)0x24)\r
+#define DCM_E_REQUESTOUTOFRANGE ((Dcm_NegativeResponseCodeType)0x31)\r
+#define DCM_E_SECUTITYACCESSDENIED ((Dcm_NegativeResponseCodeType)0x33)\r
+#define DCM_E_GENERALPROGRAMMINGFAILURE ((Dcm_NegativeResponseCodeType)0x72)\r
+#define DCM_E_SUBFUNCTIONNOTSUPPORTEDINACTIVESESSION ((Dcm_NegativeResponseCodeType)0x7E)\r
+#define DCM_E_RPMTOOHIGH ((Dcm_NegativeResponseCodeType)0x81)\r
+#define DCM_E_RPMTOLOW ((Dcm_NegativeResponseCodeType)0x82)\r
+#define DCM_E_ENGINEISRUNNING ((Dcm_NegativeResponseCodeType)0x83)\r
+#define DCM_E_ENGINEISNOTRUNNING ((Dcm_NegativeResponseCodeType)0x84)\r
+#define DCM_E_ENGINERUNTIMETOOLOW ((Dcm_NegativeResponseCodeType)0x85)\r
+#define DCM_E_TEMPERATURETOOHIGH ((Dcm_NegativeResponseCodeType)0x86)\r
+#define DCM_E_TEMPERATURETOOLOW ((Dcm_NegativeResponseCodeType)0x87)\r
+#define DCM_E_VEHICLESPEEDTOOHIGH ((Dcm_NegativeResponseCodeType)0x88)\r
+#define DCM_E_VEHICLESPEEDTOOLOW ((Dcm_NegativeResponseCodeType)0x89)\r
+#define DCM_E_THROTTLE_PEDALTOOHIGH ((Dcm_NegativeResponseCodeType)0x8A)\r
+#define DCM_E_THROTTLE_PEDALTOOLOW ((Dcm_NegativeResponseCodeType)0x8B)\r
+#define DCM_E_TRANSMISSIONRANGENOTINNEUTRAL ((Dcm_NegativeResponseCodeType)0x8C)\r
+#define DCM_E_TRANSMISSIONRANGENOTINGEAR ((Dcm_NegativeResponseCodeType)0x8D)\r
+#define DCM_E_BRAKESWITCH_NOTCLOSED ((Dcm_NegativeResponseCodeType)0x8F)\r
+#define DCM_E_SHIFTERLEVERNOTINPARK ((Dcm_NegativeResponseCodeType)0x90)\r
+#define DCM_E_TORQUECONVERTERCLUTCHLOCKED ((Dcm_NegativeResponseCodeType)0x91)\r
+#define DCM_E_VOLTAGETOOHIGH ((Dcm_NegativeResponseCodeType)0x92)\r
+#define DCM_E_VOLTAGETOOLOW ((Dcm_NegativeResponseCodeType)0x93)\r
+\r
+#define DCM_E_POSITIVERESPONSE ((Dcm_NegativeResponseCodeType)0x00)\r
+#define DCM_E_SERVICENOTSUPPORTED ((Dcm_NegativeResponseCodeType)0x11)\r
+#define DCM_E_SUBFUNCTIONNOTSUPPORTED ((Dcm_NegativeResponseCodeType)0x12)\r
+#define DCM_E_INCORRECTMESSAGELENGTHORINVALIDFORMAT ((Dcm_NegativeResponseCodeType)0x13)\r
+#define DCM_E_RESPONSEPENDING ((Dcm_NegativeResponseCodeType)0x78)\r
+#define DCM_E_SERVICENOTSUPPORTEDINACTIVESESSION ((Dcm_NegativeResponseCodeType)0x7F)\r
+\r
+\r
+typedef uint8 Dcm_StatusType;\r
+#define DCM_E_OK (Dcm_StatusType)0x00u\r
+#define DCM_E_COMPARE_KEY_FAILED (Dcm_StatusType)0x01u\r
+#define DCM_E_TI_PREPARE_LIMITS (Dcm_StatusType)0x02u\r
+#define DCM_E_TI_PREPARE_INCONSTENT (Dcm_StatusType)0x03u\r
+#define DCM_E_SESSION_NOT_ALLOWED (Dcm_StatusType)0x04u\r
+#define DCM_E_PROTOCOL_NOT_ALLOWED (Dcm_StatusType)0x05u\r
+#define DCM_E_ROE_NOT_ACCEPTED (Dcm_StatusType)0x06u\r
+#define DCM_E_PERIODICID_NOT_ACCEPTED (Dcm_StatusType)0x07u\r
+#define DCM_E_REQUEST_NOT_ACCEPTED (Dcm_StatusType)0x08u\r
+#define DCM_E_REQUEST_ENV_NOK (Dcm_StatusType)0x09u\r
+\r
+typedef uint8 Dcm_PeriodicTransmitModeType;\r
+#define DCM_PERIODICTRANSMIT_DEFAULT_MODE (Dcm_PeriodicTransmitModeType)0x00u \r
+#define DCM_PERIODICTRANSMIT_SLOWRATE_MODE (Dcm_PeriodicTransmitModeType)0x01u\r
+#define DCM_PERIODICTRANSMIT_MEDIUM_MODE (Dcm_PeriodicTransmitModeType)0x02u\r
+#define DCM_PERIODICTRANSMIT_FAST_MODE (Dcm_PeriodicTransmitModeType)0x03u\r
+#define DCM_PERIODICTRANSMIT_STOPSENDING_MODE (Dcm_PeriodicTransmitModeType)0x04u\r
+\r
+\r
+\r
+typedef uint8 Dcm_DDDSubfunctionType;\r
+#define DCM_DDD_SUBFUNCTION_DEFINEBYDID (Dcm_DDDSubfunctionType)0x01u\r
+#define DCM_DDD_SUBFUNCTION_DEFINEBYADDRESS (Dcm_DDDSubfunctionType)0x02u\r
+#define DCM_DDD_SUBFUNCTION_CLEAR (Dcm_DDDSubfunctionType)0x03u\r
+\r
+\r
+typedef uint8 Dcm_PeriodicDidStartType;\r
+#define DCM_PERIODIC_TRANISMIT_STOP (Dcm_PeriodicDidStartType)0\r
+#define DCM_PERIODIC_TRANISMIT_START (Dcm_PeriodicDidStartType)0x01u\r
+\r
+typedef uint8 Dcm_DDDSourceStateType;\r
+#define DCM_DDDSOURCE_BY_DID (Dcm_DDDSourceStateType)0x00u\r
+#define DCM_DDDSOURCE_BY_ADDRESS (Dcm_DDDSourceStateType)0x01u\r
+\r
+typedef uint8 Dcm_IOControlParameterType;\r
+#define DCM_RETURN_CONTROL_TO_ECU (Dcm_IOControlParameterType)0x0\r
+#define DCM_RESET_TO_DEFAULT (Dcm_IOControlParameterType)0x01\r
+#define DCM_FREEZE_CURRENT_STATE (Dcm_IOControlParameterType)0x02\r
+#define DCM_SHORT_TERM_ADJUSTMENT (Dcm_IOControlParameterType)0x03\r
+\r
+#endif /*DCM_TYPES_H_*/\r
#include "Dem_Lcfg.h"\r
#include "Dem_IntErrId.h" /** @req DEM115 */\r
#include "Dem_IntEvtId.h"\r
+#include <limits.h>\r
/** @req DEM153 */ /** @req DEM154 */ /* Realized in Dem_IntErrId.h and Dem_IntEvtId.h */\r
// #include "Rte_Dem.h"\r
\r
#define DEM_E_PRI_MEM_EVENT_BUFF_FULL 0x44\r
#define DEM_E_PRI_MEM_EXT_DATA_BUFF_FULL 0x45\r
\r
+#define DEM_E_FF_TOO_BIG 0x46\r
+#define DEM_E_PRE_INIT_FF_DATA_BUFF_FULL 0x47\r
+#define DEM_E_PRI_MEM_FF_DATA_BUFF_FULL 0x48\r
+\r
#define DEM_E_UNEXPECTED_EXECUTION 0xfe\r
#define DEM_E_NOT_IMPLEMENTED_YET 0xff\r
\r
+\r
// Service ID in this module\r
#define DEM_PREINIT_ID 0x01\r
#define DEM_INIT_ID 0x02\r
#define DEM_CLEARDTC_ID 0x22\r
#define DEM_DISABLEDTCSTORAGE_ID 0x24\r
#define DEM_ENABLEDTCSTORAGE_ID 0x25\r
+\r
+#define DEM_GETFREEZEFRAMEDATARECORDBYDTC_ID 0x26\r
+#define DEM_GETFREEZEFRAMEDATAIDENTIFIERBYDTC_ID 0x26\r
+\r
#define DEM_GETTRANSLATIONTYPE_ID 0x3c\r
#define DEM_GETFAULTDETECTIONCOUNTER_ID 0x3E\r
#define DEM_MAINFUNCTION_ID 0x55\r
#define DEM_STORE_EXT_DATA_PRI_MEM_ID 0x85\r
#define DEM_PREDEBOUNCE_NONE_ID 0x86\r
#define DEM_PREDEBOUNCE_COUNTER_BASED_ID 0x87\r
+#define DEM_GET_FREEZEFRAME_ID 0x88\r
+#define DEM_STORE_FF_DATA_PRE_INIT_ID 0x89\r
+#define DEM_STORE_FF_DATA_PRI_MEM_ID 0x90\r
+\r
+#define DEM_DSP_DID_USE_PORT_IS_TRUE 0x91\r
+#define DEM_READ_DATA_LENGTH_FAILED 0x92\r
#define DEM_GLOBAL_ID 0xff\r
\r
#endif\r
\r
-\r
+#define DEM_MAX_TIMESTAMP_FOR_REARRANGEMENT ULONG_MAX //when timestamp up to the max value,rearrangement starts.\r
/*\r
* Interface for upper layer modules (8.3.1)\r
*/\r
Dem_ReturnControlDTCStorageType Dem_EnableDTCStorage(Dem_DTCGroupType dtcGroup, Dem_DTCKindType dtcKind); /** @req DEM243 */\r
Dem_ReturnGetExtendedDataRecordByDTCType Dem_GetExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint8 *destBuffer, uint16 *bufSize); /** @req DEM239 */\r
Dem_ReturnGetSizeOfExtendedDataRecordByDTCType Dem_GetSizeOfExtendedDataRecordByDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTCOriginType dtcOrigin, uint8 extendedDataNumber, uint16 *sizeOfExtendedDataRecord); /** @req DEM240 */\r
-\r
+Dem_ReturnGetFreezeFrameDataByDTCType Dem_GetFreezeFrameDataByDTC(uint32 dtc,Dem_DTCKindType dtcKind,Dem_DTCOriginType dtcOrigin,uint8 recordNumber,uint8* destBuffer,uint8* bufSize);\r
+Dem_GetFreezeFameDataIdentifierByDTCType Dem_GetFreezeFrameDataIdentifierByDTC(uint32 dtc,\r
+ Dem_DTCKindType dtcKind,\r
+ Dem_DTCOriginType dtcOrigin,\r
+ uint8 recordNumber,\r
+ uint8* arraySize,\r
+ const uint16** dataId );\r
+Dem_ReturnGetSizeOfFreezeFrameType Dem_GetSizeOfFreezeFrame(uint32 dtc,Dem_DTCKindType dtcKind,Dem_DTCOriginType dtcOrigin,uint8 recordNumber,uint16* sizeOfFreezeFrame);\r
\r
\r
/*\r
\r
#ifndef DEM_LCFG_H_\r
#define DEM_LCFG_H_\r
-\r
#include "Dem_Types.h"\r
#if defined(USE_DCM)\r
#include "Dcm_Types.h" /** @req DEM176.Dcm */\r
+#include "Dcm_Lcfg.h" /** @req DEM136.Dcm */\r
#endif\r
-\r
+//#if defined(USE_NVRam)\r
+#include "NvM_ConfigTypes.h" /** @req Dem147.Nvm */\r
+//#endif\r
\r
/*\r
* Callback function prototypes\r
// GetPIDValue\r
typedef Std_ReturnType (*Dem_CallbackGetPIDValueFncType)(uint8 *DataValueBuffer); /** @req DEM326 */\r
\r
+typedef enum{\r
+ FF_STORAGE_CONDITION_WRONG = 0, //FF storage condition is wrong\r
+ PREFAILED = 1, //store FF when the event status is prefailed\r
+ FAILED = 2 //store FF when the event status is failed\r
+}Dem_FreezeFrameStorageConditonType; /** @req Dem001_private */\r
/*\r
* DemGeneral types\r
*/\r
\r
// 10.2.8 DemPidOrDid\r
typedef struct {\r
-// boolean PidOrDidUsePort; // (1) Not used in current implementation\r
- uint8 PidOrDidSize; // (1)\r
- const uint16 *DidIdentifier; // (0..1)\r
- Dem_CallbackConditionCheckReadFncType DidConditionCheckReadFnc; // (0..1)\r
+ Dem_CallbackConditionCheckReadFncType DidConditionCheckReadFnc; // (0..1)\r
+ const uint16 DidIdentifier; // (0..1)\r
Dem_CallbackReadDataLength DidReadDataLengthFnc; // (0..1)\r
Dem_CallbackReadDataFncType DidReadFnc; // (0..1)\r
- const uint8 *PidIndentifier; // (0..1)\r
+ const uint8 PidIndentifier; // (0..1)\r
+ uint8 PidOrDidSize; // (1)\r
+ boolean PidOrDidUsePort; // (1) Not used in current implementation \r
Dem_CallbackGetPIDValueFncType PidReadFnc; // (0..1)\r
boolean Arc_EOL;\r
} Dem_PidOrDidType; /** @req DEM136 */\r
// 10.2.18 DemFreezeFrameClass\r
typedef struct {\r
Dem_FreezeFrameKindType FFKind; // (1)\r
- uint8 FFRecordNumber; // (1)\r
- const Dem_PidOrDidType *FFIdClassRef; // (1..255)\r
+ uint8 FFRecordNumber; // (1)/** @req DEM040 */\r
+ Dem_FreezeFrameStorageConditonType FFStorageCondition;/** @req Dem001_private */\r
+ const Dem_PidOrDidType *FFIdClassRef; // (1..255)/** @req DEM039 */\r
} Dem_FreezeFrameClassType; /** @req DEM136 */\r
\r
+\r
// 10.2.4 DemIndicator\r
typedef struct {\r
uint16 Indicator; // (1)\r
\r
// 10.2.28 DemNvramBlockId\r
typedef struct {\r
- // TODO: Fill out\r
-} Dem_NvramBlockIdType;\r
+\r
+//#if defined(USE_NVRam)\r
+ const NvM_BlockDescriptorType *BlockDescriptor;/** @req FIM083 *//** @req Dem697_Conf AutoSAR 4.2.0*/\r
+//#endif\r
+\r
+} Dem_NvramBlockIdType;/** @req Dem147 *//** @req Dem696_Conf AutoSAR 4.2.0*/\r
\r
/*\r
* DemConfigSetType types\r
// 10.2.14 DemEventClass\r
typedef struct {\r
boolean ConsiderPtoStatus; // (1)\r
- const Dem_DTCOriginType EventDestination[DEM_MAX_NR_OF_EVENT_DESTINATION+1];// (0..4)\r
+ const Dem_DTCOriginType EventDestination[DEM_MAX_NR_OF_EVENT_DESTINATION+1];// (0..4)\r
uint8 EventPriority; // (1)\r
boolean FFPrestorageSupported; // (1)\r
boolean HealingAllowed; // (1)\r
Dem_OperationCycleIdType OperationCycleRef; // (1)\r
-// uint8 HealingCycleCounter; // (0..1) Optional\r
+ Dem_OperationCycleIdType HealingCycleRef; // (1)\r
+ uint8 HealingCycleCounter; // (0..1) Optional\r
// const Dem_EnableConditionType *EnableConditionRef; // (0..*) Optional\r
-// const Dem_OperationCycleTgtType *HealingCycleRef; // (0..1) Optional\r
const Dem_PreDebounceAlgorithmClassType *PreDebounceAlgorithmClass; // (0..255) (Only 0..1 supported)\r
const Dem_IndicatorAttributeType *IndicatorAttribute; // (0..255)\r
// Dem_OEMSPecific\r
Dem_EventKindType EventKind; // (1)\r
const Dem_EventClassType *EventClass; // (1)\r
const Dem_ExtendedDataClassType *ExtendedDataClassRef; // (0..1)\r
- const Dem_FreezeFrameClassType *FreezeFrameClassRef; // (0..255) (Only 0..1 supported)\r
+ const Dem_FreezeFrameClassType *FreezeFrameClassRef[DEM_MAX_NR_OF_CLASSES_IN_FREEZEFRAME_DATA+1]; // (0..255) (Only 0..1 supported)/** @req DEM021 */\r
const Dem_CallbackInitMforEType *CallbackInitMforE; // (0..1)\r
const Dem_CallbackEventStatusChangedType *CallbackEventStatusChanged;// (0..*)\r
const Dem_DTCClassType *DTCClassRef; // (0..1)\r
boolean Arc_EOL;\r
} Dem_EventParameterType; /** @req DEM130 */\r
\r
+\r
+\r
// 10.2.19 DemGroupOfDTC\r
typedef struct {\r
// TODO: Fill out\r
} Dem_ConfigType;\r
\r
\r
+typedef uint16 ChecksumType;\r
+typedef struct {\r
+ Dem_EventIdType eventId;\r
+ uint16 occurrence;\r
+ uint16 dataSize;\r
+ uint8 recordNumber;\r
+ uint32 timeStamp;\r
+ uint8 data[DEM_MAX_SIZE_FF_DATA];\r
+ ChecksumType checksum;\r
+} FreezeFrameRecType;\r
+\r
+// Types for storing different event aging counter\r
+typedef struct {\r
+ Dem_EventIdType eventId;\r
+ uint8 agingCounter;/** @req Dem019 */\r
+ ChecksumType checksum;\r
+} HealingRecType;\r
+\r
/*\r
* Make the DEM_Config visible for others.\r
*/\r
extern const Dem_ConfigType DEM_Config;\r
\r
-\r
#endif /*DEM_LCFG_H_*/\r
\r
#define INVALID_OSAPPLICATION (-1)\r
\r
+#define TASK(_task) void _task( void )\r
+\r
+\r
/* TODO, I have no idea what this should be*/\r
#if (OS_USE_APPLICATIONS == STD_ON)\r
typedef sint32 ApplicationType;\r
// unsigned long to string\r
void ultoa(unsigned long value, char* str, int base);\r
// int to string\r
-void itoa(int value, char* str, int base);\r
+char * itoa(int value, char* str, int base);\r
\r
\r
#endif /* XTOA_H_ */\r
--- /dev/null
+\r
+\r
+MKIMAGE?=/c/Users/mahi/git/bootloader/bin/mkimage\r
+SRECORD_PATH?=/c/devtools/srecord\r
+SREC_CAT=$(Q)$(SRECORD_PATH)/srec_cat.exe\r
+SREC_INFO=$(Q)$(SRECORD_PATH)/srec_info.exe\r
+\r
+# "downloader" need an srecord file \r
+build-srec-image-y = $(PROJECTNAME)_srec_image.srec\r
+build-srec-y = $(PROJECTNAME).srec\r
+build-bin-image-y = $(PROJECTNAME)_bin_image.bin\r
+\r
+# To add a header with mkimage we need a binary file\r
+build-bin-y = $(PROJECTNAME).bin\r
+\r
+all-mod += $(build-srec-image-y)\r
+all-mod += $(build-srec-y)\r
+all-mod += $(build-bin-image-y)\r
+\r
+# To srecord again to load in tool\r
+$(build-srec-image-y): $(build-bin-image-y)\r
+ @echo ">> Binary to SREC to load with tool"\r
+ $(SREC_CAT) $< -binary -offset ${BOOT_IMAGE_ADDR} -o $@\r
+ $(SREC_INFO) $@\r
+\r
+$(build-srec-y) : $(build-exe-y)\r
+ @echo\r
+ @echo " >> OBJCOPY $@" \r
+ $(Q)$(CROSS_COMPILE)objcopy -O srec $< $@\r
+ $(SREC_INFO) $@\r
+\r
+# Binary image down to 0\r
+$(build-bin-y) : $(build-srec-y)\r
+ @echo ">> srec to binary with offset 0"\r
+ $(SREC_INFO) $< \r
+ $(SREC_CAT) $< -offset - -minimum-addr $< -o $@ -binary\r
+\r
+# Add image header \r
+# Should extract the start address with "objdump -f"\r
+$(build-bin-image-y): $(build-bin-y)\r
+ @echo ">> Adding header" \r
+ $(MKIMAGE) -o $@ -l $(BOOT_BLOB_LOAD_ADDR) -s $(BOOT_BLOB_START_ADDR) -m "APP" -v $<\r
include $(ROOTDIR)/boards/board_common.mk\r
endif\r
\r
+# Misc tools\r
+ifneq ($(CFG_BOOT),)\r
+include $(ROOTDIR)/boards/$(BOARDDIR)/boot_info.mk\r
+include $(ROOTDIR)/scripts/bootloader_image.mk\r
+endif \r
\r
##### For backwards compatability with older project makefiles:\r
\r
$(Q)$(CROSS_COMPILE)objcopy -O ihex $< $@\r
\r
# bin output\r
-$(build-bin-y): $(build-exe-y)\r
- @echo\r
- @echo " >> OBJCOPY $@" \r
- $(Q)$(CROSS_COMPILE)objcopy -O binary $< $@ \r
+#$(build-bin-y): $(build-exe-y)\r
+# @echo\r
+# @echo " >> OBJCOPY $@" \r
+# $(Q)$(CROSS_COMPILE)objcopy -O binary $< $@ \r
\r
# Linker\r
$(build-exe-y): $(dep-y) $(obj-y) $(sim-y) $(libitem-y) $(ldcmdfile-y)\r
* -------------------------------- Arctic Core ------------------------------*/\r
\r
\r
+/* ----------------------------[information]----------------------------------*/\r
+/*\r
+ * Author: mahi\r
+ *\r
+ * Part of Release:\r
+ * 3.1.5\r
+ *\r
+ * Description:\r
+ * Implements the SchM module\r
+ *\r
+ * Support:\r
+ * General Have Support\r
+ * -------------------------------------------\r
+ * SCHM_DEV_ERROR_DETECT N\r
+ * SCHM_VERSION_INFO_API N\r
+ *\r
+ * General Have Support\r
+ * -------------------------------------------\r
+ * SCHM_POSITION_IN_TASK N\r
+ * SCHM_MAINFUNCTION_REF N\r
+ * SCHM_MAPPED_TO_TASK N\r
+ * .....\r
+ *\r
+ * Implementation Notes:\r
+ * There are a lot of examples in SchM about scheduling and it\r
+ * all seems very complicated. What is boils down to is that\r
+ * the BSW MainFunctions have different requirements. Most modules\r
+ * have only periodic needs for timeouts and other things. But there\r
+ * are also module that needs extra iterations at certain points in time, to\r
+ * be really efficient.\r
+ *\r
+ *\r
+ * BSW Module Code:\r
+ * SchM_Enter_NvM(EXCLUSIVE_AREA_0);\r
+ * ..Do stuff...\r
+ * SchM_Enter_NvM(EXCLUSIVE_AREA_0);\r
+ *\r
+ * but today we have Irq_Save(state), Irq_Restore(state).\r
+ * ArcCore Irq_Save/Irq_Restore is almost the same as SuspendAllInterrupts/ResumeAllInterrupts,\r
+ * since they can both be nested and saves state. But the OSEK (Susp../Resume..) can't do it locally, it\r
+ * assumes some kind of local FIFO, that is bad.\r
+ *\r
+ *\r
+ * BSW Modules with generated mainfunction period times. Checked Only 3.1.5\r
+ *\r
+ * Specification Studio Core=Generator\r
+ * --------------------------------------------------------------------------------------\r
+ * Adc N/A *1\r
+ * Can CanMainFunctionReadPerdiod No No\r
+ * CanMainFunctionWritePerdiod\r
+ * ..\r
+ * CanIf Have No mainf N/A\r
+ * CanNm CanNmMainFunctionPeriod Yes Accessible in struct.. not as define\r
+ * CanSm Have mainf. but no period Yes*2 Nothing is generated\r
+ * CanTp CanTpMainFunctionPeriod Yes CANTP_MAIN_FUNCTION_PERIOD_TIME_MS\r
+ * CanTrcv Have mainf. but no period N/A\r
+ * Com Have mainf. but no period No*3\r
+ * ComM ComMMainFunctionPeriod Yes Accessible in struct.. not as define\r
+ * Dcm Have MainF. DcmTaskTime Yes DCM_MAIN_FUNCTION_PERIOD_TIME_MS\r
+ * Dem Have MainF. DemTaskTime No\r
+ * EcuM Have MainF.EcuMMainFunctionPeriod Yes ECUM_MAIN_FUNCTION_PERIOD\r
+ * Ea Have MainF. ON_PRE_CONDITION (ie not cyclic)\r
+ * Eep Have MainF. VARIABLE_CYCLIC\r
+ * Fee Have MainF. ON_PRE_CONDITION\r
+ * Fls Have MainF. FIXED_CYCLIC\r
+ * IoHwAb Have no mainfunction\r
+ * ..\r
+ * Nm Have MainF. FIXED_CYCLIC , No\r
+ * NmCycletimeMainFunction\r
+ * NvM Have MainF. VARIABLE_CYCLIC No\r
+ * PduR Have no MainF.\r
+ * Spi Have MainF. FIXED_CYCLIC, no period\r
+ * WdgM Have MainF. WdgMTriggerCycle *4\r
+ *\r
+ * *1 No MainFunction\r
+ * *2 What is it used for?\r
+ * *3 Com have lots of timing... it's related to what? (reads timer?)\r
+ * *4 Probably not.\r
+ *\r
+ * ----->>>>\r
+ *\r
+ * Conclusion:\r
+ * * Support in generator is extremely limited.\r
+ * * Support in specification is limited\r
+ * * Support in studio is limited\r
+ *\r
+ * Write scheduling information directly in the SchM_<mod>.h files.\r
+ * OR\r
+ * Write scheduling information in SchM_cfg.h....better (keeps information in one place)\r
+ *\r
+ * #if defined(USE_SCHM)\r
+ * assert( SCHM_TIMER(x) == <period> )\r
+ * #endif\r
+ *\r
+ * It seems it's mandatory to include SchM_<mod>.h for each BSW module.\r
+ * So,\r
+ * - <mod>.c ALWAYS include SchM_<mod.h>\r
+ * - SchM.c have condidional include on SchM_<mod>.h, e.g must define it's MainFunctions.\r
+ *\r
+ *\r
+ *\r
+ */\r
\r
+#include "SchM.h"\r
+#include "SchM_cfg.h"\r
\r
\r
+#if defined(USE_MCU)\r
+#include "Mcu.h"\r
+#endif\r
+#if defined(USE_GPT)\r
+#include "Gpt.h"\r
+#endif\r
\r
+#if defined(USE_CAN)\r
+#include "Can.h"\r
+#include "SchM_Can.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_CAN_WRITE()\r
+#define SCHM_MAINFUNCTION_CAN_READ()\r
+#define SCHM_MAINFUNCTION_CAN_BUSOFF()\r
+#define SCHM_MAINFUNCTION_CAN_ERROR()\r
+#define SCHM_MAINFUNCTION_CAN_WAKEUP()\r
+#endif\r
\r
+#if defined(USE_CANIF)\r
+#include "CanIf.h"\r
+#include "SchM_CanIf.h"\r
+#endif\r
\r
+#if defined(USE_PDUR)\r
+#include "PduR.h"\r
+#include "SchM_PduR.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_PDUR()\r
+#endif\r
+\r
+#if defined(USE_COM)\r
+#include "Com.h"\r
+#include "SchM_Com.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_COMRX()\r
+#define SCHM_MAINFUNCTION_COMTX()\r
+#endif\r
+\r
+#if defined(USE_CANTP)\r
+#include "CanTp.h"\r
+#include "SchM_CanTp.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_CANTP()\r
+#endif\r
+\r
+#if defined(USE_J1939TP)\r
+#include "J1939Tp.h"\r
+#include "SchM_J1939TP.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_J1939TP()\r
+#endif\r
+\r
+\r
+#if defined(USE_DCM)\r
+#include "Dcm.h"\r
+#include "SchM_Dcm.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_DCM()\r
+#endif\r
+\r
+#if defined(USE_DEM)\r
+#include "Dem.h"\r
+#include "SchM_Dem.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_DEM()\r
+#endif\r
+\r
+#if defined(USE_PWM)\r
+#include "Pwm.h"\r
+#include "SchM_Pwm.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_PWM()\r
+#endif\r
+\r
+\r
+#if defined(USE_IOHWAB)\r
+#include "IoHwAb.h"\r
+#include "SchM_IoHwAb.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_IOWHAB()\r
+#endif\r
+\r
+#if defined(USE_FLS)\r
+#include "Fls.h"\r
+#include "SchM_Fls.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_FLS()\r
+#endif\r
+\r
+#if defined(USE_ECUM)\r
+#include "EcuM.h"\r
+#include "SchM_EcuM.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_ECUM()\r
+#endif\r
+\r
+#if defined(USE_EEP)\r
+#include "Eep.h"\r
+#include "SchM_Fls.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_EEP()\r
+#endif\r
+\r
+#if defined(USE_FEE)\r
+#include "Fee.h"\r
+#include "SchM_Fee.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_FEE()\r
+#endif\r
+\r
+#if defined(USE_EA)\r
+#include "Ea.h"\r
+#include "SchM_Ea.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_EA()\r
+#endif\r
+\r
+#if defined(USE_NVM)\r
+#include "NvM.h"\r
+#include "SchM_NvM.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_NVM()\r
+#endif\r
+\r
+#if defined(USE_COMM)\r
+#include "ComM.h"\r
+#include "SchM_ComM.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_COMM()\r
+#endif\r
+\r
+#if defined(USE_NM)\r
+#include "Nm.h"\r
+#include "SchM_Nm.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_NM()\r
+#endif\r
+\r
+#if defined(USE_CANNM)\r
+#include "CanNm.h"\r
+#include "SchM_CanNm.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_CANNM()\r
+#endif\r
+\r
+#if defined(USE_CANSM)\r
+#include "CanSM.h"\r
+#include "SchM_CanSM.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_CANSM()\r
+#endif\r
+\r
+#if defined(USE_UDPNM)\r
+#include "UdpNm.h"\r
+#endif\r
+\r
+#if defined(USE_LINSM)\r
+#include "LinSM.h"\r
+#endif\r
+\r
+#if defined(USE_SPI)\r
+#include "Spi.h"\r
+#include "SchM_Spi.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_SPI()\r
+#endif\r
+\r
+#if defined(USE_WDG)\r
+#include "Wdg.h"\r
+#endif\r
+\r
+#if defined(USE_WDGM)\r
+#include "WdgM.h"\r
+#include "SchM_WdgM.h"\r
+#else\r
+#define SCHM_MAINFUNCTION_WDMG()\r
+#endif\r
+\r
+SCHM_DECLARE(ECUM);\r
+SCHM_DECLARE(NVM);\r
+SCHM_DECLARE(FEE);\r
+SCHM_DECLARE(EA);\r
+SCHM_DECLARE(FLS);\r
\r
-#include "SchM.h"\r
\r
\r
void SchM_Init( void ) {\r
- \r
+\r
}\r
+\r
void SchM_Deinit( void ) {\r
- \r
+\r
}\r
\r
void SchM_GetVersionInfo( Std_VersionInfoType *versionInfo ) {\r
- \r
+\r
+}\r
+\r
+\r
+static void runMemory( void ) {\r
+ SCHM_MAINFUNCTION_NVM();\r
+ SCHM_MAINFUNCTION_EA();\r
+ SCHM_MAINFUNCTION_FEE();\r
+ SCHM_MAINFUNCTION_EEP();\r
+ SCHM_MAINFUNCTION_FLS();\r
+ SCHM_MAINFUNCTION_SPI();\r
}\r
\r
-/* \r
- * Implement\r
+/**\r
+ * Startup task.\r
*/\r
-// Critical sections\r
-// void SchM_Enter_<ModulePrefix>( uint8 instance, uint8 exclusiveArea )\r
-// void SchM_Exit_<ModulePrefix>( uint8 instance, uint8 exclusiveArea )\r
-\r
-// Triggers\r
-// SchM_ReturnType SchM_ActMainFunction_<ModulePrefix>( uint8 instance, uint8 activationPoint );\r
-// SchM_ReturnType SchM_CancelMainFunction_<ModulePrefix>( uint8 instance, uint8 activationPoint );\r
-\r
-/* \r
- * Callable functions in the <ModulePrefix>\r
- */ \r
-// <ModulePrefix>_MainFunction_<name>()\r
-// <ModulePrefix>_MainFunction_<name>()\r
+TASK(SchM_Startup){\r
+\r
+ /* At this point EcuM == ECUM_STATE_STARTUP_ONE */\r
+\r
+ /* Schedule memory task more often that usaul so that EcuM_StartupTwo() may return quicker */\r
+ ActivateTask(TASK_ID_SchM_BswService);\r
+ /* Set events on TASK_ID_BswService_Mem */\r
+ SetRelAlarm(ALARM_ID_Alarm_BswService, 10, 2);\r
+\r
+ /*\r
+ * Call EcuM_StartupTwo that do:\r
+ * - Startup RTE,\r
+ * - Wait for Nvm to complete\r
+ * - Call EcuM_AL_DriverInitThree() to initiate Nvm dependent modules.\r
+ */\r
+ EcuM_StartupTwo();\r
+\r
+ /* Start to schedule BSW parts */\r
+ SetRelAlarm(ALARM_ID_Alarm_BswService, 10, 5);\r
+\r
+ EcuM_RequestRUN(ECUM_USER_User_1);\r
+\r
+ ActivateTask(TASK_ID_Application);\r
+\r
+ TerminateTask();\r
+\r
+}\r
+\r
+\r
+TASK(SchM_BswService) {\r
+ EcuM_StateType state;\r
+\r
+ EcuM_GetState(&state);\r
+\r
+ switch( state ) {\r
+ case ECUM_STATE_STARTUP_ONE:\r
+ /* Nothing to schedule */\r
+ break;\r
+ case ECUM_STATE_STARTUP_TWO:\r
+ runMemory();\r
+ break;\r
+ default:\r
+ runMemory();\r
+\r
+ SCHM_MAINFUNCTION_ECUM();\r
+\r
+ SCHM_MAINFUNCTION_CAN_WRITE();\r
+ SCHM_MAINFUNCTION_CAN_READ();\r
+ SCHM_MAINFUNCTION_CAN_BUSOFF();\r
+ SCHM_MAINFUNCTION_CAN_ERROR();\r
+ SCHM_MAINFUNCTION_CAN_WAKEUP();\r
+\r
+ SCHM_MAINFUNCTION_PDUR();\r
+\r
+ SCHM_MAINFUNCTION_COMRX();\r
+ SCHM_MAINFUNCTION_COMTX();\r
+\r
+ SCHM_MAINFUNCTION_CANTP();\r
+ SCHM_MAINFUNCTION_J1939TP();\r
+ SCHM_MAINFUNCTION_DCM();\r
+ SCHM_MAINFUNCTION_DEM();\r
+ SCHM_MAINFUNCTION_PWM();\r
+ SCHM_MAINFUNCTION_IOWHAB();\r
+ SCHM_MAINFUNCTION_COMM();\r
+ SCHM_MAINFUNCTION_NM();\r
+ SCHM_MAINFUNCTION_CANNM();\r
+ SCHM_MAINFUNCTION_CANSM();\r
+ SCHM_MAINFUNCTION_WDMG();\r
+ break;\r
+ }\r
+\r
+ TerminateTask();\r
+}\r
+\r
+void SchM_MainFunction( void ) {\r
+\r
+}\r
\r
\r
\r
* -------------------------------- Arctic Core ------------------------------*/\r
\r
\r
-\r
-\r
-\r
-\r
-\r
-\r
#ifndef SCHM_H_\r
#define SCHM_H_\r
\r
void SchM_Deinit( void );\r
void SchM_GetVersionInfo( Std_VersionInfoType *versionInfo );\r
\r
+#define SchM_Enter( _module, _exc_area ) \\r
+ SchM_Enter_EcuM ## _module ## _exc_area\r
+\r
+#define SchM_Exit( _module, _exc_area ) \\r
+ SchM_Enter_EcuM ## _module ## _exc_area\r
+\r
+\r
+#define CONCAT_(_x,_y) _x##_y\r
+\r
+\r
+typedef struct {\r
+ uint32 timer;\r
+} SchM_InfoType;\r
+\r
+#define SCHM_DECLARE(_mod) \\r
+ SchM_InfoType SchM_Info_ ## _mod\r
+\r
+#define SCHM_MAINFUNCTION(_mod,_func) \\r
+ if( (++SchM_Info_ ## _mod.timer % SCHM_MAINFUNCTION_CYCLE_ ## _mod )== 0 ) { \\r
+ _func; \\r
+ SchM_Info_ ## _mod.timer = 0; \\r
+ }\r
+\r
+\r
+\r
#endif /*SCHM_H_*/\r
* for more details.\r
* -------------------------------- Arctic Core ------------------------------*/\r
\r
+#ifndef SCHM_CAN_H_\r
+#define SCHM_CAN_H_\r
\r
\r
-/** @addtogroup SchM\r
- * @{ */\r
\r
-/** @file SchM_EcuM.h\r
- */\r
-\r
-\r
-#ifndef SCHM_ECUM_H_\r
-#define SCHM_ECUM_H_\r
-\r
-\r
-#endif /* SCHM_ECUM_H_ */\r
+#endif /* SCHM_CAN_H_ */\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+#ifndef SCHM_CANIF_H_\r
+#define SCHM_CANIF_H_\r
+\r
+\r
+#endif /* SCHM_CANIF_H_ */\r
* for more details.\r
* -------------------------------- Arctic Core ------------------------------*/\r
\r
-\r
-\r
-/** @addtogroup TBD\r
- * @{ */\r
-\r
-/** @file schM_CanTp.h\r
- * TBD.\r
- */\r
-\r
-\r
#ifndef SCHM_CANTP_H_\r
#define SCHM_CANTP_H_\r
\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+\r
+#ifndef SCHM_ECUM_H_\r
+#define SCHM_ECUM_H_\r
+\r
+/*\r
+ * "Prototypes"\r
+ */\r
+#define SchM_Enter_EcuM(_area) CONCAT_(SchM_Enter_EcuM_,_area)\r
+#define SchM_Exit_EcuM(_area) CONCAT_(SchM_Exit_EcuM_,_area)\r
+\r
+/*\r
+ * Exclusive Areas\r
+ */\r
+\r
+/* Lock interrupts */\r
+#define EXCLUSIVE_AREA_0 0\r
+\r
+#define SchM_Enter_EcuM_0 DisableAllInterrupts\r
+#define SchM_Exit_EcuM_0 ResumeAllInterrupts\r
+\r
+#define SCHM_MAINFUNCTION_ECUM() SCHM_MAINFUNCTION(ECUM,EcuM_MainFunction())\r
+\r
+\r
+/* Skip "instance", req INTEGR058 */\r
+#if 0\r
+#define SchM_Enter_EcuM(uint8 exclusiveArea )\r
+#define SchM_Exit_EcuM(uint8 exclusiveArea )\r
+#define SchM_ActMainFunction_EcuM(uint8 exclusiveArea )\r
+#define SchM_CancelMainFunction_EcuM( uint8 exclusiveArea )\r
+#endif\r
+\r
+#endif /* SCHM_ECUM_H_ */\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+\r
+\r
+#ifndef SCHM_FEE_H_\r
+#define SCHM_FEE_H_\r
+\r
+#define SCHM_MAINFUNCTION_FEE() SCHM_MAINFUNCTION(FEE,Fee_MainFunction())\r
+\r
+#endif /* SCHM_FEE_H_ */\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+\r
+\r
+#ifndef SCHM_FLS_H_\r
+#define SCHM_FLS_H_\r
+\r
+#define SCHM_MAINFUNCTION_FLS() SCHM_MAINFUNCTION(FLS,Fls_MainFunction())\r
+\r
+#endif /* SCHM_FLS_H_ */\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+\r
+#ifndef SCHM_NVM_H_\r
+#define SCHM_NVM_H_\r
+\r
+#define SCHM_MAINFUNCTION_NVM() SCHM_MAINFUNCTION(NVM,NvM_MainFunction())\r
+\r
+#endif /* SCHM_NVM_H_ */\r
* -------------------------------- Arctic Core ------------------------------*/\r
\r
\r
+#ifndef SCHM_CFG_H_\r
+#define SCHM_CFG_H_\r
\r
\r
+#define SCHM_MF_MEM_PERIOD 20\r
+\r
+/*\r
+ * Scheduling BSW\r
+ */\r
+#define SCHM_CYCLE_MAIN (5)\r
+\r
+#define SCHM_MAINFUNCTION_CYCLE_ADC SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_CAN SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_CANNM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_CANSM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_CANTP SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_CANTRCV SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_COM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_COMM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_DCM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_DEM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_ECUM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_EA SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_EEP SCHM_CYCLE_MAIN\r
+//#define SCHM_MAINFUNCTION_CYCLE_FEE SCHM_CYCLE_MAIN\r
+//#define SCHM_MAINFUNCTION_CYCLE_FLS SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_IOHWAB SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_NM SCHM_CYCLE_MAIN\r
+//#define SCHM_MAINFUNCTION_CYCLE_NvM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_PDUR SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_SPI SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_WDGM SCHM_CYCLE_MAIN\r
+\r
+/*\r
+ * Schedule BSW memory\r
+ */\r
+\r
+#define SCHM_MAINFUNCTION_CYCLE_NVM SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_FEE SCHM_CYCLE_MAIN\r
+#define SCHM_MAINFUNCTION_CYCLE_FLS SCHM_CYCLE_MAIN\r
\r
\r
-\r
-\r
-#ifndef SCHM_CFG_H_\r
-#define SCHM_CFG_H_\r
-\r
#endif /*SCHM_CFG_H_*/\r