]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Merge with ac7a40bc631fb2dfca15ae7785ba2aa768ee23d8
authorjcar <devnull@localhost>
Fri, 7 Sep 2012 07:41:57 +0000 (09:41 +0200)
committerjcar <devnull@localhost>
Fri, 7 Sep 2012 07:41:57 +0000 (09:41 +0200)
99 files changed:
arch/ppc/crt0.sx
arch/ppc/mpc55xx/drivers/Wdg.c
arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf
boards/board_common.mk
boards/generic/Dcm_Callout_Stubs.c [new file with mode: 0644]
boards/mpc5516it/board_mpc5516it.arxml [new file with mode: 0644]
boards/mpc5516it/build_config.mk
boards/mpc5516it/memory.ldf
boards/mpc551xsim/build_config.mk
boards/mpc551xsim/memory.ldf
boards/mpc5554sim/build_config.mk
boards/mpc5554sim/memory.ldf
boards/mpc5567qrtech/boot_info.mk [new file with mode: 0644]
boards/mpc5567qrtech/build_config.mk
boards/mpc5567qrtech/examples/os_simple/makefile
boards/mpc5567qrtech/examples/rte_simple/build_config.mk [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Calibration_Settings.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/CanIf_Cfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/CanIf_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/CanIf_SpecialPdus.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Can_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Can_PBcfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Com_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Com_PbCfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Com_PbCfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Det_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Dio_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Dio_Lcfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/EcuM.mk [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/EcuM_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/EcuM_Generated_Types.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/EcuM_PBcfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Mcu_Cfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Mcu_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Os_Cfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Os_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/PduR_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/PduR_PbCfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/PduR_PbCfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Port_Cfg.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Port_Cfg.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte.mk [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator_Internal.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Cbk.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Data.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Data.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2_Internal.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger_Internal.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester.c [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester_Internal.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/config/Rte_Type.h [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/makefile [new file with mode: 0644]
boards/mpc5567qrtech/examples/rte_simple/rte_simple_mpc5567qrtech.arxml [new file with mode: 0644]
boards/mpc5567qrtech/memory.ldf
boards/mpc5604b_trk/build_config.mk
boards/mpc5606s_xpc560s/build_config.mk
boards/mpc5668_gkit/boot_info.mk [new file with mode: 0644]
boards/mpc5668_gkit/build_config.mk
boards/mpc5668_gkit/examples/os_simple/makefile
boards/mpc5668_gkit/memory.ldf
boards/ti_tms570ls/examples/rte_simple/rte_simple_ti_tms570ls.arxml
common/xtoa.c
diagnostic/Dcm/Dcm.c
diagnostic/Dcm/Dcm_Dsd.c
diagnostic/Dcm/Dcm_Dsl.c
diagnostic/Dcm/Dcm_Dsp.c
diagnostic/Dcm/Dcm_Internal.h
diagnostic/Dcm/Dcm_Types.h [deleted file]
diagnostic/Dem/Dem.c
examples/rte_simple/rte_simple_extract.arxml
examples/rte_simple/rte_simple_lib.arxml
include/Dcm_Lcfg.h [moved from diagnostic/Dcm/Dcm_Lcfg.h with 93% similarity]
include/Dcm_Types.h [new file with mode: 0644]
include/Dem.h
include/Dem_Lcfg.h [moved from diagnostic/Dem/Dem_Lcfg.h with 78% similarity]
include/Dem_Types.h [moved from diagnostic/Dem/Dem_Types.h with 100% similarity]
include/Os.h
include/Rte_Dem.h [moved from diagnostic/Dem/Rte_Dem.h with 100% similarity]
include/xtoa.h
scripts/bootloader_image.mk [new file with mode: 0644]
scripts/rules.mk
system/SchM/SchM.c
system/SchM/SchM.h
system/SchM/SchM_Can.h [moved from include/SchM_EcuM.h with 83% similarity]
system/SchM/SchM_CanIf.h [new file with mode: 0644]
system/SchM/SchM_CanTp.h [moved from include/SchM_CanTp.h with 89% similarity]
system/SchM/SchM_EcuM.h [new file with mode: 0644]
system/SchM/SchM_Fee.h [new file with mode: 0644]
system/SchM/SchM_Fls.h [new file with mode: 0644]
system/SchM/SchM_NvM.h [new file with mode: 0644]
system/SchM/SchM_cfg.h

index 3ab5e3e9a212b4b34d6afb3b8ccb5bce6ab63a11..484fed07ca7ea390cb77f8eb6f93417e8428f844 100644 (file)
@@ -95,13 +95,11 @@ _start:
        /*  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
index 5af3849098192fbe3b5c384d0ba1f243776edd21..ecfd6cf414aefc2b88076986c90b66f6e3d7a937 100644 (file)
 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
@@ -37,7 +39,7 @@ void StartWatchdog(void)
  {\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
index e7411d76aaaa3893d96d87598076ab24030a2b4c..f8f9010088a4fa55f8a14e4176a755be71965399 100644 (file)
@@ -45,6 +45,8 @@ MEMORY
 \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
@@ -93,11 +95,13 @@ __FLS_PROG_START__ = 0x20000;       /* Must be aligned to a sector start. */
 __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
@@ -120,37 +124,37 @@ __FLS_PROG_START__ = 0;   /* Must be aligned to a sector start. */
     } > 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
@@ -162,33 +166,19 @@ __FLS_PROG_START__ = 0;   /* Must be aligned to a sector start. */
                _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
@@ -206,7 +196,7 @@ __FLS_PROG_START__ = 0;     /* Must be aligned to a sector start. */
     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
@@ -271,12 +261,12 @@ __BSS_START               = ADDR(.sbss);
 /* __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
index 2b6653a1e5fb7203809f28a05eb2f48024357ab7..f44697a0daa1cc46021f9730c988967b54b04c07 100644 (file)
@@ -113,6 +113,11 @@ vpath-$(USE_NVM) += $(ROOTDIR)/system/Crc
 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
@@ -267,6 +272,7 @@ obj-$(USE_DCM) += Dcm_Dsp.o
 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
diff --git a/boards/generic/Dcm_Callout_Stubs.c b/boards/generic/Dcm_Callout_Stubs.c
new file mode 100644 (file)
index 0000000..6fca12e
--- /dev/null
@@ -0,0 +1,40 @@
+/* -------------------------------- 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
diff --git a/boards/mpc5516it/board_mpc5516it.arxml b/boards/mpc5516it/board_mpc5516it.arxml
new file mode 100644 (file)
index 0000000..00057da
--- /dev/null
@@ -0,0 +1,1733 @@
+<?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
index bcb802528ad06c57366de9ae7bebb4761c41b665..880b8279f6e672a15754975abdb3e9fac69ba1bb 100644 (file)
@@ -17,7 +17,7 @@ MOD_AVAIL+=CANIF CANTP LINIF COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE J1
 # 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
@@ -26,3 +26,5 @@ MOD_USE += MCU KERNEL ECUM DET
 # Default cross compiler\r
 DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
 \r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
index 99c95163b57744a240c5ab5b39b1468066fdca82..054172f4597c314e1d3efa52bf5928c06448ba56 100644 (file)
@@ -8,4 +8,4 @@ flash(R) : ORIGIN = 0x00000000, LENGTH = 0x100000
  * 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
index dcc942c0f80abe8dbe84ce14696dfca043806da2..4f62207913bc3aef2b2dc8a98d19c824d16b3265 100644 (file)
@@ -24,3 +24,6 @@ MOD_USE += MCU KERNEL ECUM DET
 \r
 # Default cross compiler\r
 DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
+\r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
index f05baae542768c3968877ead4e13d533fcd5a8d5..f813887cc07d067c9e30f43a08d485f26c1c51e8 100644 (file)
@@ -3,4 +3,4 @@ flash(R) : ORIGIN = 0x00000000, LENGTH = 1M
  * 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
index 25de833bbef18c5b4598c3fab168be3063105c5f..1cea54c91b081f26f6a6c23f43e88469dd966e98 100644 (file)
@@ -26,3 +26,5 @@ MOD_USE += MCU KERNEL ECUM DET
 # Default cross compiler\r
 DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
 \r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
index 8a447b389fd18b87dda486643a27ce586bad1843..06401c893d6dcd146ea4137ea2746836dbfad769 100644 (file)
@@ -7,4 +7,4 @@ flash(R) : ORIGIN = 0x00000008, LENGTH = 2M
  * 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
diff --git a/boards/mpc5567qrtech/boot_info.mk b/boards/mpc5567qrtech/boot_info.mk
new file mode 100644 (file)
index 0000000..949ae6d
--- /dev/null
@@ -0,0 +1,4 @@
+\r
+BOOT_IMAGE_ADDR=0x1c000\r
+BOOT_BLOB_LOAD_ADDR=0x1c100\r
+BOOT_BLOB_START_ADDR=$(BOOT_BLOB_LOAD_ADDR)\r
index 0f9a9e1d439e2cfb7ce96495f20426c42951a898..5fea51eba2f5c9868c281e6a9ca539ad72384ba8 100644 (file)
@@ -7,6 +7,8 @@ ARCH_MCU=mpc5567
 # 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
@@ -27,3 +29,6 @@ MOD_USE += MCU KERNEL ECUM DET
 # Default cross compiler\r
 DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
 \r
+# Defines\r
+def-y += SRAM_SIZE=0x14000\r
+\r
index f56d821f5592a6ddd814a6cccee2cf22f6bb6fca..cc9ce04580be7f10898b4de0ebc7d0854edc7665 100644 (file)
@@ -12,10 +12,12 @@ ifneq (${MAKELEVEL},0)
        \r
        VPATH += $(ROOTDIR)/examples\r
        VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
-\r
+       \r
 endif\r
 \r
 \r
 \r
 \r
 \r
+\r
+\r
diff --git a/boards/mpc5567qrtech/examples/rte_simple/build_config.mk b/boards/mpc5567qrtech/examples/rte_simple/build_config.mk
new file mode 100644 (file)
index 0000000..98e9314
--- /dev/null
@@ -0,0 +1,9 @@
+\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Calibration_Settings.h b/boards/mpc5567qrtech/examples/rte_simple/config/Calibration_Settings.h
new file mode 100644 (file)
index 0000000..bc87e59
--- /dev/null
@@ -0,0 +1,28 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/CanIf_Cfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/CanIf_Cfg.c
new file mode 100644 (file)
index 0000000..9ef9760
--- /dev/null
@@ -0,0 +1,209 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/CanIf_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/CanIf_Cfg.h
new file mode 100644 (file)
index 0000000..8ea11b4
--- /dev/null
@@ -0,0 +1,68 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/CanIf_SpecialPdus.h b/boards/mpc5567qrtech/examples/rte_simple/config/CanIf_SpecialPdus.h
new file mode 100644 (file)
index 0000000..751ce87
--- /dev/null
@@ -0,0 +1,27 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Can_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Can_Cfg.h
new file mode 100644 (file)
index 0000000..45c8240
--- /dev/null
@@ -0,0 +1,115 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Can_PBcfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/Can_PBcfg.c
new file mode 100644 (file)
index 0000000..2ea2557
--- /dev/null
@@ -0,0 +1,128 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Com_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Com_Cfg.h
new file mode 100644 (file)
index 0000000..6cf6916
--- /dev/null
@@ -0,0 +1,49 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Com_PbCfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/Com_PbCfg.c
new file mode 100644 (file)
index 0000000..a887a98
--- /dev/null
@@ -0,0 +1,452 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Com_PbCfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Com_PbCfg.h
new file mode 100644 (file)
index 0000000..6d2cd07
--- /dev/null
@@ -0,0 +1,56 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Det_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Det_Cfg.h
new file mode 100644 (file)
index 0000000..20eae19
--- /dev/null
@@ -0,0 +1,37 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Dio_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Dio_Cfg.h
new file mode 100644 (file)
index 0000000..e03c234
--- /dev/null
@@ -0,0 +1,55 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Dio_Lcfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/Dio_Lcfg.c
new file mode 100644 (file)
index 0000000..343676b
--- /dev/null
@@ -0,0 +1,42 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/EcuM.mk b/boards/mpc5567qrtech/examples/rte_simple/config/EcuM.mk
new file mode 100644 (file)
index 0000000..e44bafe
--- /dev/null
@@ -0,0 +1,3 @@
+\r
+MOD_USE += CANIF COM DET ECUM KERNEL PDUR RTE CAN MCU DIO PORT \r
+\r
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/EcuM_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/EcuM_Cfg.h
new file mode 100644 (file)
index 0000000..cf2a269
--- /dev/null
@@ -0,0 +1,41 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/EcuM_Generated_Types.h b/boards/mpc5567qrtech/examples/rte_simple/config/EcuM_Generated_Types.h
new file mode 100644 (file)
index 0000000..f20bcb5
--- /dev/null
@@ -0,0 +1,178 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/EcuM_PBcfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/EcuM_PBcfg.c
new file mode 100644 (file)
index 0000000..7a572db
--- /dev/null
@@ -0,0 +1,119 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Mcu_Cfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/Mcu_Cfg.c
new file mode 100644 (file)
index 0000000..6f9d7cc
--- /dev/null
@@ -0,0 +1,47 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Mcu_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Mcu_Cfg.h
new file mode 100644 (file)
index 0000000..5361921
--- /dev/null
@@ -0,0 +1,42 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Os_Cfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/Os_Cfg.c
new file mode 100644 (file)
index 0000000..2c02ba3
--- /dev/null
@@ -0,0 +1,201 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Os_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Os_Cfg.h
new file mode 100644 (file)
index 0000000..7e19547
--- /dev/null
@@ -0,0 +1,118 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/PduR_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/PduR_Cfg.h
new file mode 100644 (file)
index 0000000..7bcf291
--- /dev/null
@@ -0,0 +1,75 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/PduR_PbCfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/PduR_PbCfg.c
new file mode 100644 (file)
index 0000000..520c738
--- /dev/null
@@ -0,0 +1,138 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/PduR_PbCfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/PduR_PbCfg.h
new file mode 100644 (file)
index 0000000..dafcb89
--- /dev/null
@@ -0,0 +1,45 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Port_Cfg.c b/boards/mpc5567qrtech/examples/rte_simple/config/Port_Cfg.c
new file mode 100644 (file)
index 0000000..3d1b250
--- /dev/null
@@ -0,0 +1,546 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Port_Cfg.h b/boards/mpc5567qrtech/examples/rte_simple/config/Port_Cfg.h
new file mode 100644 (file)
index 0000000..a5d563f
--- /dev/null
@@ -0,0 +1,95 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte.c
new file mode 100644 (file)
index 0000000..7ffbc87
--- /dev/null
@@ -0,0 +1,175 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte.mk b/boards/mpc5567qrtech/examples/rte_simple/config/Rte.mk
new file mode 100644 (file)
index 0000000..fc35d23
--- /dev/null
@@ -0,0 +1,7 @@
+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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator.c
new file mode 100644 (file)
index 0000000..7eab49f
--- /dev/null
@@ -0,0 +1,21 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator.h
new file mode 100644 (file)
index 0000000..56d36a5
--- /dev/null
@@ -0,0 +1,24 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator_Internal.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Calculator_Internal.h
new file mode 100644 (file)
index 0000000..e536e06
--- /dev/null
@@ -0,0 +1,24 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Cbk.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Cbk.c
new file mode 100644 (file)
index 0000000..5b3841e
--- /dev/null
@@ -0,0 +1,49 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Data.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Data.c
new file mode 100644 (file)
index 0000000..358adc0
--- /dev/null
@@ -0,0 +1,26 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Data.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Data.h
new file mode 100644 (file)
index 0000000..13108bc
--- /dev/null
@@ -0,0 +1,37 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger.c
new file mode 100644 (file)
index 0000000..84009da
--- /dev/null
@@ -0,0 +1,27 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger.h
new file mode 100644 (file)
index 0000000..af334e2
--- /dev/null
@@ -0,0 +1,26 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2.c
new file mode 100644 (file)
index 0000000..e61d41e
--- /dev/null
@@ -0,0 +1,27 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2.h
new file mode 100644 (file)
index 0000000..fb22271
--- /dev/null
@@ -0,0 +1,26 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2_Internal.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger2_Internal.h
new file mode 100644 (file)
index 0000000..bb1fb07
--- /dev/null
@@ -0,0 +1,26 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger_Internal.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Logger_Internal.h
new file mode 100644 (file)
index 0000000..04f3ca4
--- /dev/null
@@ -0,0 +1,26 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester.c b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester.c
new file mode 100644 (file)
index 0000000..b29be1d
--- /dev/null
@@ -0,0 +1,51 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester.h
new file mode 100644 (file)
index 0000000..7ffb2b1
--- /dev/null
@@ -0,0 +1,41 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester_Internal.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Tester_Internal.h
new file mode 100644 (file)
index 0000000..621c676
--- /dev/null
@@ -0,0 +1,39 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Type.h b/boards/mpc5567qrtech/examples/rte_simple/config/Rte_Type.h
new file mode 100644 (file)
index 0000000..a8fc8e5
--- /dev/null
@@ -0,0 +1,159 @@
+/*\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/makefile b/boards/mpc5567qrtech/examples/rte_simple/makefile
new file mode 100644 (file)
index 0000000..f8686b0
--- /dev/null
@@ -0,0 +1,22 @@
+\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
diff --git a/boards/mpc5567qrtech/examples/rte_simple/rte_simple_mpc5567qrtech.arxml b/boards/mpc5567qrtech/examples/rte_simple/rte_simple_mpc5567qrtech.arxml
new file mode 100644 (file)
index 0000000..e6a9b78
--- /dev/null
@@ -0,0 +1,3168 @@
+<?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
index 0afe8b344d0b97d33c48b3ee206d98685f8e430f..e82cddc67cef38e527b086ddfe148b605bac5e62 100644 (file)
@@ -1,3 +1,7 @@
 /* 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
index 43e0eb77b6f07b280dd9b4c234519825c25e72e2..7633036e65e3eb8f5010e61b0024ce09a22c3028 100644 (file)
@@ -27,3 +27,8 @@ MOD_USE += MCU KERNEL ECUM DET
 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
index fe5f666acfacc9d6fa16eef31d82e197fda4050f..6ff58e0a4ee3ecbd2bc8c23d344688fb6f4eaa2a 100644 (file)
@@ -27,3 +27,6 @@ MOD_USE += MCU KERNEL ECUM DET
 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
diff --git a/boards/mpc5668_gkit/boot_info.mk b/boards/mpc5668_gkit/boot_info.mk
new file mode 100644 (file)
index 0000000..2f226e6
--- /dev/null
@@ -0,0 +1,4 @@
+\r
+BOOT_IMAGE_ADDR=0x20000\r
+BOOT_BLOB_LOAD_ADDR=0x20100\r
+BOOT_BLOB_START_ADDR=$(BOOT_BLOB_LOAD_ADDR)\r
index c28b9159f6d60f431c324c4e12770c08c11e22dd..3f896e29abc1046514203d9a45e7c1dd41371a7e 100644 (file)
@@ -2,22 +2,24 @@
 # 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
@@ -26,3 +28,5 @@ MOD_USE += MCU KERNEL ECUM DET
 # Default cross compiler\r
 DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
 \r
+# Defines\r
+def-y += SRAM_SIZE=0x94000\r
index f56d821f5592a6ddd814a6cccee2cf22f6bb6fca..68ac9c84c64f80c4037643ab22f6b605a05a3a87 100644 (file)
@@ -12,10 +12,11 @@ ifneq (${MAKELEVEL},0)
        \r
        VPATH += $(ROOTDIR)/examples\r
        VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
-\r
+       \r
 endif\r
 \r
 \r
 \r
 \r
 \r
+\r
index 3ef440a80ee0518db0d625b13c8fcf0c5e67733d..42436424755236f00d2bc2404cf2c1ff133ab381 100644 (file)
@@ -1,8 +1,14 @@
 /* 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
index 5a2194800c109e180f01b10ba87e0c7be2c343d8..05469f3e6a345f90e1f58733420e99f0605cf821 100644 (file)
                       <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
index 0663b9bbe340e9c0dbe89945dd663fc6e8681516..889fd1ecb2cf5d3d6adf5303c8613eb394467290 100644 (file)
@@ -102,7 +102,8 @@ void ultoa(unsigned long value, char* str, int base) {
  * @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
index 10ef4881daf3dc4ff3fc774c27a3e7207e47b8bf..45a5b2f174d8c768336c6f2bf6beeab0867b3684 100644 (file)
@@ -44,6 +44,9 @@
 #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
index 4dc906b78fb3062a7abf6219211b45771f5d79cf..2e3d7fa7121ff3a80e4960a3e11017114e5848d4 100644 (file)
@@ -107,7 +107,15 @@ static void selectServiceFunction(uint8 sid)
        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
@@ -133,8 +141,17 @@ static void selectServiceFunction(uint8 sid)
                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
index 0ff514f08de88838f6177ea71897e0d03fdd0d83..a9798e5a40b50198339c352dbf430ce9d27efd46 100644 (file)
@@ -94,6 +94,8 @@ static void changeDiagnosticSession(Dcm_DslRunTimeProtocolParametersType *runtim
 \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
@@ -105,7 +107,7 @@ static void changeDiagnosticSession(Dcm_DslRunTimeProtocolParametersType *runtim
 \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
@@ -120,7 +122,7 @@ static void changeDiagnosticSession(Dcm_DslRunTimeProtocolParametersType *runtim
 \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
@@ -302,7 +304,7 @@ void DslDsdProcessingDone(PduIdType rxPduIdRef, DsdProcessingDoneResultType resp
        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
@@ -312,11 +314,11 @@ void DslDsdProcessingDone(PduIdType rxPduIdRef, DsdProcessingDoneResultType resp
                        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
@@ -412,9 +414,36 @@ void DslInit(void) {
 }\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
@@ -436,10 +465,8 @@ void DslMain(void) {
                                //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
@@ -452,7 +479,7 @@ void DslMain(void) {
                                                                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
@@ -465,7 +492,7 @@ void DslMain(void) {
                                // 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
@@ -475,18 +502,18 @@ void DslMain(void) {
 \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
@@ -524,14 +551,13 @@ BufReq_ReturnType DslProvideRxBufferToPdur(PduIdType dcmRxPduId, PduLengthType t
        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
@@ -540,7 +566,6 @@ BufReq_ReturnType DslProvideRxBufferToPdur(PduIdType dcmRxPduId, PduLengthType t
                                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
@@ -622,16 +647,17 @@ void DslRxIndicationFromPduR(PduIdType dcmRxPduId, NotifResultType result) {
                                                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
@@ -682,7 +708,7 @@ BufReq_ReturnType DslProvideTxBuffer(PduIdType dcmTxPduId, const PduInfoType **p
        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
@@ -693,7 +719,7 @@ BufReq_ReturnType DslProvideTxBuffer(PduIdType dcmTxPduId, const PduInfoType **p
                        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
@@ -708,7 +734,7 @@ BufReq_ReturnType DslProvideTxBuffer(PduIdType dcmTxPduId, const PduInfoType **p
                                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
@@ -732,7 +758,7 @@ void DslTxConfirmation(PduIdType dcmTxPduId, NotifResultType result) {
        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
@@ -746,7 +772,7 @@ void DslTxConfirmation(PduIdType dcmTxPduId, NotifResultType result) {
                        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
@@ -756,11 +782,11 @@ void DslTxConfirmation(PduIdType dcmTxPduId, NotifResultType result) {
                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
index fb386301d365781a45f31b03bb08bdcccc3ba831..6c8627c7f69c7fef2db4d27803f97e9764e4ff59 100644 (file)
@@ -23,7 +23,6 @@
 /** @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
@@ -50,7 +60,7 @@ typedef struct {
 } DspUdsEcuResetDataType;\r
 \r
 static DspUdsEcuResetDataType dspUdsEcuResetData;\r
-\r
+static boolean dspWritePending;\r
 \r
 typedef struct {\r
        boolean                                                 reqInProgress;\r
@@ -60,17 +70,152 @@ typedef struct {
 \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
@@ -675,7 +820,34 @@ void DspUdsReadDtcInformation(const PduInfoType *pduRxData, PduInfoType *pduTxDa
 \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
@@ -767,6 +939,104 @@ static Dcm_NegativeResponseCodeType readDidData(const Dcm_DspDidType *didPtr, Pd
        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
@@ -774,19 +1044,34 @@ void DspUdsReadDataByIdentifier(const PduInfoType *pduRxData, PduInfoType *pduTx
        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
@@ -893,7 +1178,7 @@ static Dcm_NegativeResponseCodeType writeDidData(const Dcm_DspDidType *didPtr, c
                                        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
@@ -1314,4 +1599,1384 @@ void DspDcmConfirmation(PduIdType confirmPduId)
 }\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
index 590e75e09aacc3154e353e0ddaf918f8d22273cb..344036bacf3b8df9aacfd058b83c755b88ba8eae 100644 (file)
@@ -58,6 +58,7 @@
 #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
@@ -65,6 +66,7 @@
 #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
@@ -79,6 +81,19 @@ typedef enum {
        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
@@ -96,7 +111,11 @@ void DspUdsWriteDataByIdentifier(const PduInfoType *pduRxData, PduInfoType *pduT
 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
@@ -130,7 +149,9 @@ void DslSetSesCtrlType(Dcm_SesCtrlType sesCtrl);
 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
diff --git a/diagnostic/Dcm/Dcm_Types.h b/diagnostic/Dcm/Dcm_Types.h
deleted file mode 100644 (file)
index 55101aa..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -------------------------------- 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
index 6d2e935fdca9eb92921754bf82b1107aca768ea1..c5631e169ac1ea5ec12c005dece3ea4cdea9fb3b 100644 (file)
 #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
@@ -130,24 +136,14 @@ typedef struct {
        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
@@ -201,10 +197,37 @@ static ExtDataRecType             preInitExtDataBuffer[DEM_MAX_NUMBER_EXT_DATA_PRE_INIT];
  * 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
@@ -369,7 +392,7 @@ static void lookupEventIdParameter(Dem_EventIdType eventId, const Dem_EventParam
 {\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
@@ -381,8 +404,34 @@ static void lookupEventIdParameter(Dem_EventIdType eventId, const Dem_EventParam
                *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
@@ -485,18 +534,16 @@ static Dem_EventStatusType preDebounceCounterBased(Dem_EventStatusType reportedS
 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
@@ -505,14 +552,14 @@ static void updateEventStatusRec(const Dem_EventParameterType *eventParam, Dem_E
                        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
@@ -524,28 +571,26 @@ static void updateEventStatusRec(const Dem_EventParameterType *eventParam, Dem_E
                                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
@@ -553,11 +598,14 @@ static void updateEventStatusRec(const Dem_EventParameterType *eventParam, Dem_E
                        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
@@ -583,55 +631,45 @@ static void mergeEventStatusRec(const EventRecType *eventRec)
        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
@@ -718,32 +756,385 @@ static boolean matchEventWithDtcFilter(const EventStatusRecType *eventRec)
 \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
@@ -860,6 +1251,7 @@ static void storeEventPriMem(const Dem_EventParameterType *eventParam, const Eve
        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
@@ -872,6 +1264,7 @@ static void storeEventPriMem(const Dem_EventParameterType *eventParam, const Eve
                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
@@ -894,14 +1287,11 @@ static void deleteEventPriMem(const Dem_EventParameterType *eventParam)
        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
@@ -1080,22 +1470,175 @@ static boolean lookupExtendedDataPriMem(Dem_EventIdType eventId, ExtDataRecType
 \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
@@ -1111,10 +1654,11 @@ static void storeFreezeFrameDataEvtMem(const Dem_EventParameterType *eventParam,
                {\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
@@ -1126,6 +1670,79 @@ static void storeFreezeFrameDataEvtMem(const Dem_EventParameterType *eventParam,
        }\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
@@ -1139,7 +1756,6 @@ static void handlePreInitEvent(Dem_EventIdType eventId, Dem_EventStatusType even
        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
@@ -1152,21 +1768,19 @@ static void handlePreInitEvent(Dem_EventIdType eventId, Dem_EventStatusType even
                                }\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
@@ -1197,8 +1811,8 @@ static Std_ReturnType handleEvent(Dem_EventIdType eventId, Dem_EventStatusType e
        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
@@ -1206,22 +1820,26 @@ static Std_ReturnType handleEvent(Dem_EventIdType eventId, Dem_EventStatusType e
                                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
@@ -1384,7 +2002,163 @@ static Std_ReturnType getFaultDetectionCounter(Dem_EventIdType eventId, sint8 *c
 \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
@@ -1418,6 +2192,7 @@ static Std_ReturnType setOperationCycleState(Dem_OperationCycleIdType operationC
                                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
@@ -1467,6 +2242,9 @@ void Dem_PreInit(void)
        /** @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
@@ -1486,6 +2264,22 @@ void Dem_PreInit(void)
                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
@@ -1526,84 +2320,118 @@ void Dem_Init(void)
 {\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
@@ -1629,6 +2457,9 @@ void Dem_Shutdown(void)
 {\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
@@ -1636,10 +2467,15 @@ void Dem_Shutdown(void)
 /*\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
@@ -1790,6 +2626,7 @@ Std_ReturnType Dem_SetOperationCycleState(Dem_OperationCycleIdType operationCycl
        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
@@ -1846,7 +2683,7 @@ Std_ReturnType Dem_GetDTCOfEvent(Dem_EventIdType eventId, Dem_DTCKindType dtcKin
  * 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
@@ -1884,7 +2721,7 @@ Std_ReturnType Dem_GetDTCStatusAvailabilityMask(uint8 *dtcStatusMask) /** @req D
        *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
@@ -2061,7 +2898,7 @@ Dem_ReturnTypeOfDtcSupportedType Dem_GetTranslationType(void)
  * 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
@@ -2069,7 +2906,6 @@ Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTC
        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
@@ -2084,9 +2920,7 @@ Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTC
                                                                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
@@ -2094,11 +2928,15 @@ Dem_ReturnClearDTCType Dem_ClearDTC(uint32 dtc, Dem_DTCKindType dtcKind, Dem_DTC
                                                                                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
@@ -2290,6 +3128,244 @@ Dem_ReturnGetSizeOfExtendedDataRecordByDTCType Dem_GetSizeOfExtendedDataRecordBy
        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
index 94532e4430c9ac9214fa0ef41f7277e550af8ee9..00ae65deb15a0a115a57b22c24338bb20481b65d 100644 (file)
@@ -22,7 +22,7 @@
                   <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
@@ -30,7 +30,7 @@
                   <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
@@ -38,7 +38,7 @@
                   <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
@@ -46,7 +46,7 @@
                   <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
@@ -54,7 +54,7 @@
                   <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
index 04a3ba09b33525986e2b115307101158395f0604..5fd49b04ccce71ec87dd9c14572855050c5ab740 100644 (file)
                           <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
similarity index 93%
rename from diagnostic/Dcm/Dcm_Lcfg.h
rename to include/Dcm_Lcfg.h
index 764fee4f75786d38bff7ba301c95cb9d36227487..2fc05fd38fc66ac2f82367c737c37d139a43b52d 100644 (file)
@@ -34,6 +34,8 @@ typedef uint8 Dcm_ProtocolAddrTypeType;
 #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
@@ -129,10 +131,10 @@ typedef struct {
 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
@@ -302,6 +304,28 @@ typedef struct {
        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
@@ -318,6 +342,7 @@ typedef struct {
        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
@@ -530,6 +555,7 @@ typedef struct {
        uint8                                   responsePendingCount;\r
        Dcm_SecLevelType                securityLevel;\r
        Dcm_SesCtrlType                 sessionControl;\r
+       Dcm_DslLocalBufferType      PeriodicTxBuffer;\r
 } Dcm_DslRunTimeProtocolParametersType;\r
 \r
 // 10.2.10\r
@@ -595,6 +621,9 @@ typedef struct {
 /*\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
diff --git a/include/Dcm_Types.h b/include/Dcm_Types.h
new file mode 100644 (file)
index 0000000..68d5616
--- /dev/null
@@ -0,0 +1,168 @@
+/* -------------------------------- 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
index 08aa56817c1eaed74405ef4beabebdf951621bf9..07211e3a56e032d6d0f5cc6d410955390c9c972e 100644 (file)
@@ -39,6 +39,7 @@
 #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
@@ -156,7 +172,14 @@ Dem_ReturnControlDTCStorageType Dem_DisableDTCStorage(Dem_DTCGroupType dtcGroup,
 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
similarity index 78%
rename from diagnostic/Dem/Dem_Lcfg.h
rename to include/Dem_Lcfg.h
index d1079e0136de55c0ec7427b972ca1a36a99b7c3c..2a0205fe44df2f72bfc006165098314e45e8f302 100644 (file)
 \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
@@ -72,6 +74,11 @@ typedef Std_ReturnType (*Dem_CallbackGetFaultDetectionCounterFncType)(sint8 *Eve
 // 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
@@ -97,13 +104,13 @@ typedef struct {
 \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
@@ -111,10 +118,12 @@ typedef struct {
 // 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
@@ -122,8 +131,12 @@ typedef struct {
 \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
@@ -203,14 +216,14 @@ typedef struct {
 // 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
@@ -222,13 +235,15 @@ typedef struct {
        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
@@ -253,10 +268,27 @@ typedef struct {
 } 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
index 107a41493da9663ee3e28874291adc665e4ef59b..671e9af8eebea8d06cacd389b27ee039a0f9dc36 100644 (file)
@@ -88,6 +88,9 @@ typedef TaskStateType *TaskStateRefType;
 \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
similarity index 100%
rename from diagnostic/Dem/Rte_Dem.h
rename to include/Rte_Dem.h
index 51a7efde85400e5cee7e7b27cd0d91126cc8fb24..6ecea92ec935e77067f190a235586634c1243635 100644 (file)
@@ -20,7 +20,7 @@ void xtoa(unsigned long val, char* str, int base,int negative);
 // 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
diff --git a/scripts/bootloader_image.mk b/scripts/bootloader_image.mk
new file mode 100644 (file)
index 0000000..ab10651
--- /dev/null
@@ -0,0 +1,42 @@
+\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
index 326121dfdc3626ecd28f246d89c7acc4ecd4b87b..c487e4d8d7d4b060a7b477134768d16ecdae454b 100644 (file)
@@ -122,6 +122,11 @@ ifndef _BOARD_COMMON_MK
 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
@@ -293,10 +298,10 @@ $(build-hex-y): $(build-exe-y)
        $(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
index a619af9c1dadc975b01ead5c6863650a62a71fa0..1bae0464cd28f7b19850349aa0164e509dc6c887 100644 (file)
  * -------------------------------- 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
index 24c5218e0026bdb1b5015b2e5dd5982da6564a88..f1062ba9448b730ac04b68b7f3fc0c4d40946145 100644 (file)
  * -------------------------------- Arctic Core ------------------------------*/\r
 \r
 \r
-\r
-\r
-\r
-\r
-\r
-\r
 #ifndef SCHM_H_\r
 #define SCHM_H_\r
 \r
@@ -29,4 +23,29 @@ void SchM_Init( void );
 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
similarity index 83%
rename from include/SchM_EcuM.h
rename to system/SchM/SchM_Can.h
index 67a73676573a8f99bb68ac689e5980b069ef45e8..4fda7b5d28e30b7acb6ad7a7443d37901fcc6315 100644 (file)
  * 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
diff --git a/system/SchM/SchM_CanIf.h b/system/SchM/SchM_CanIf.h
new file mode 100644 (file)
index 0000000..d9aaa8e
--- /dev/null
@@ -0,0 +1,20 @@
+/* -------------------------------- 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
similarity index 89%
rename from include/SchM_CanTp.h
rename to system/SchM/SchM_CanTp.h
index b416e032136d7e7664ff781fff330e8db132d483..718aa84173c3a5364f16736bfdf67c889c2df126 100644 (file)
  * 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
diff --git a/system/SchM/SchM_EcuM.h b/system/SchM/SchM_EcuM.h
new file mode 100644 (file)
index 0000000..0a8bc44
--- /dev/null
@@ -0,0 +1,47 @@
+/* -------------------------------- 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
diff --git a/system/SchM/SchM_Fee.h b/system/SchM/SchM_Fee.h
new file mode 100644 (file)
index 0000000..21712ab
--- /dev/null
@@ -0,0 +1,23 @@
+/* -------------------------------- 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
diff --git a/system/SchM/SchM_Fls.h b/system/SchM/SchM_Fls.h
new file mode 100644 (file)
index 0000000..d125cf5
--- /dev/null
@@ -0,0 +1,23 @@
+/* -------------------------------- 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
diff --git a/system/SchM/SchM_NvM.h b/system/SchM/SchM_NvM.h
new file mode 100644 (file)
index 0000000..2a691ec
--- /dev/null
@@ -0,0 +1,22 @@
+/* -------------------------------- 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
index e1f212539d003c6ab586679f05255db0adb09f43..4c418b24b421480ac3798427da5ed646c1813ca8 100644 (file)
  * -------------------------------- 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