]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Merged with dem-dev
authorpete <devnull@localhost>
Fri, 18 Dec 2009 12:15:45 +0000 (13:15 +0100)
committerpete <devnull@localhost>
Fri, 18 Dec 2009 12:15:45 +0000 (13:15 +0100)
104 files changed:
arch/arm/arm_cm3/drivers/Mcu.c
arch/arm/arm_cm3/scripts/gcc.mk
arch/ppc/mpc55xx/drivers/Adc.c
arch/ppc/mpc55xx/drivers/Can.c
arch/ppc/mpc55xx/drivers/Eep.c
arch/ppc/mpc55xx/drivers/Fls.c
arch/ppc/mpc55xx/drivers/Mcu.c
arch/ppc/mpc55xx/drivers/Pwm.c
arch/ppc/mpc55xx/drivers/mpc563m.h [new file with mode: 0644]
arch/ppc/mpc55xx/drivers/mpc563m_vars.h [new file with mode: 0644]
arch/ppc/mpc55xx/kernel/int_ctrl.c
arch/ppc/mpc55xx/kernel/irq.h
arm_mac_build.mk [deleted file]
board_config.mk [deleted file]
boards/board_common.mk
boards/et_stm32_stamp/config/Mcu_Cfg.c
boards/mpc5516it/config/CanIf_Cfg.c
boards/mpc5516it/config/CanIf_Cfg.h
boards/mpc5516it/config/Can_Cfg.h
boards/mpc5516it/config/Can_Lcfg.c
boards/mpc5516it/config/Com_PbCfg.c
boards/mpc5516it/config/Lin_Lcfg.c
boards/mpc5516it/config/Mcu_Cfg.c
boards/mpc5516it/config/Spi_Cfg.h
boards/mpc551xsim/config/CanIf_Cfg.h
boards/mpc551xsim/config/Can_Cfg.h
boards/mpc551xsim/config/Can_Lcfg.c
boards/mpc551xsim/config/Mcu_Cfg.c
boards/mpc5554sim/config/Mcu_Cfg.c
boards/mpc5567qrtech/config/CanIf_Cfg.c
boards/mpc5567qrtech/config/CanIf_Cfg.h
boards/mpc5567qrtech/config/Can_Cfg.h
boards/mpc5567qrtech/config/Can_Lcfg.c
boards/mpc5567qrtech/config/Com_PbCfg.c
boards/mpc5567qrtech/config/Lin_Lcfg.c
boards/mpc5567qrtech/config/Mcu_Cfg.c
boards/mpc5567qrtech/config/Mcu_Cfg.h
boards/mpc5567qrtech/config/Spi_Cfg.h
boards/mpc563xsim/build_config.mk [new file with mode: 0644]
boards/mpc563xsim/config/Mcu_Cfg.c [new file with mode: 0644]
boards/mpc563xsim/config/Mcu_Cfg.h [new file with mode: 0644]
communication/CanIf/CanIf.c [moved from arch/ppc/mpc55xx/drivers/CanIf.c with 73% similarity]
communication/Com/Com.c
communication/Com/Com_Arc_Types.h [moved from communication/Com/Com_EcoreTypes.h with 59% similarity]
communication/Com/Com_Com.c
communication/Com/Com_Sched.c
communication/Com/Com_misc.c
communication/PduR/PduR.c
communication/PduR/PduR_Types.h
communication/PduR/makefile_old [deleted file]
components/pwm_sine/pwm_sine_main.c
examples/blinker_node/Hooks.c
examples/blinker_node/Rte/Rte.c
examples/blinker_node/Rte/Rte.h
examples/blinker_node/blinker_node.arxml [new file with mode: 0644]
examples/blinker_node/config/Os_Cfg.c
examples/blinker_node/config/Os_Cfg.h
examples/pwm_node/config/Os_Cfg.c
examples/pwm_node/config/Os_Cfg.h
examples/pwm_node/config/Pwm_Cfg.c
examples/pwm_node/config/Pwm_Cfg.h
examples/pwm_node/pwm_node_mpc551x.arxml [new file with mode: 0644]
examples/pwm_node/pwm_node_mpc5567.arxml [new file with mode: 0644]
examples/pwm_node2/Hooks.c
examples/pwm_node2/Tasks.c
examples/pwm_node2/config/CanIf_Cfg.c
examples/pwm_node2/config/Com_PbCfg.c
examples/pwm_node2/config/Os_Cfg.c
examples/pwm_node2/config/Pwm_Cfg.h
examples/pwm_node2/pwm_node2_helpers.c
examples/pwm_node2/pwm_node2_helpers.h [new file with mode: 0644]
examples/pwm_node2/pwm_node2_mpc551x.arxml [new file with mode: 0644]
examples/simple/Simple.arxml [new file with mode: 0644]
examples/simple/config/Os_Cfg.c
examples/simple/config/Os_Cfg.h
examples/simple/simple_main.c
examples/switch_node/Hooks.c
examples/switch_node/config/Adc_Cfg.h
examples/switch_node/config/CanIf_Cfg.c
examples/switch_node/config/Com_PbCfg.c
examples/switch_node/config/Os_Cfg.c
examples/switch_node/switch_node_helpers.c
examples/switch_node/switch_node_mpc551x.arxml [new file with mode: 0644]
examples/tiny/config/Os_Cfg.c
examples/tiny/config/Os_Cfg.h
include/Can.h
include/CanIf.h
include/CanIf_Cbk.h
include/Com.h
include/ComStack_Types.h
include/Com_Types.h
include/Mcu.h
include/Os.h
include/ppc/mpc55xx.h
makefile
peripherals/Fls_SST25xx.c
system/EcuM/EcuM_Callout_template.c
system/kernel/counter.c
system/kernel/create.c
system/kernel/init.c
system/kernel/testsystem/config/Os_Cfg.c
system/kernel/testsystem/config/Os_Cfg.h
tools/t32/config.cmm
tools/t32/load.cmm

index 80c837961d2aa635834dc50ab333eec3062e685f..35105872982fb61c0b0bb00841db6cc4364ed033 100644 (file)
@@ -102,8 +102,9 @@ static void Mcu_LossOfLock( void  ) {
 #define SPR_PIR 286\r
 #define SPR_PVR 287\r
 \r
-#define CORE_PVR_E200Z1   0x81440000UL\r
-#define CORE_PVR_E200Z0   0x81710000UL\r
+#define CORE_PVR_E200Z1        0x81440000UL\r
+#define CORE_PVR_E200Z0        0x81710000UL
+#define CORE_PVR_E200Z3        0x81120000UL\r
 \r
 \r
 typedef struct {\r
@@ -124,7 +125,11 @@ cpu_info_t cpu_info_list[] = {
     {\r
     .name = "MPC5516",\r
     .pvr = CORE_PVR_E200Z0,\r
-    },\r
+    },
+    {
+    .name = "MPC563X",
+    .pvr = CORE_PVR_E200Z3,
+    },
 };\r
 \r
 core_info_t core_info_list[] = {\r
@@ -136,6 +141,10 @@ core_info_t core_info_list[] = {
     .name = "CORE_E200Z1",\r
     .pvr = CORE_PVR_E200Z1,\r
     },\r
+    {
+    .name = "CORE_E200Z3",
+    .pvr = CORE_PVR_E200Z3,
+    },
 };\r
 \r
 // TODO: move\r
index 950ced3ffaa3139cb67eb8a7a799e8b60a4107df..4453193113ffe37143d47906eec0620f886da8cb 100644 (file)
@@ -1,15 +1,9 @@
 \r
-\r
-\r
 # prefered version\r
 CC_VERSION=4.1.2\r
 # ARMv7, Thumb-2, little endian, soft-float. \r
 cflags-y       += -mthumb -mcpu=cortex-m3 -mfix-cortex-m3-ldrd\r
 cflags-y       += -ggdb\r
-# experimental\r
-#cflags-y      += -mno-common\r
-\r
-#cflags-y      += -mno-common\r
 \r
 lib-y          += -lgcc -lc\r
 ASFLAGS        += -mcpu=cortex-m3 -mthumb\r
index 82cd8d5e76aa420016cfa05a9e17a0aae5e7e89f..9227a5568ceebdc2796b6d7a2c2a6fb4f9c8e313 100644 (file)
@@ -30,7 +30,8 @@
 #include "Dma.h"\r
 #include "Det.h"\r
 #if defined(USE_KERNEL)\r
-#include "Os.h"\r
+#include "Os.h"
+#include "int_ctrl.h"
 #endif\r
 \r
 \r
index ccdb7c932413469379d18db243e53ff71438e752..6037bbc0264c1bc7491045539d41021445034335 100644 (file)
 #include <stdlib.h>\r
 #include <string.h>\r
 #if defined(USE_KERNEL)\r
-#include "Os.h"\r
+#include "Os.h"
+#include "int_ctrl.h"\r
 #endif\r
 \r
 \r
 /* CONFIGURATION NOTES\r
  * ------------------------------------------------------------------\r
- * - CanHandleType must be CAN_ECORE_HANDLE_TYPE_BASIC\r
- *   i.e. CanHandleType=CAN_ECORE_HANDLE_TYPE_FULL NOT supported\r
+ * - CanHandleType must be CAN_ARC_HANDLE_TYPE_BASIC\r
+ *   i.e. CanHandleType=CAN_ARC_HANDLE_TYPE_FULL NOT supported\r
  *   i.e CanIdValue is NOT supported\r
- * - All CanXXXProcessing must be CAN_ECORE_PROCESS_TYPE_INTERRUPT\r
- *   ie CAN_ECORE_PROCESS_TYPE_POLLED not supported\r
- * - To select the Mailboxes to use in the CAN controller use CanEcoreMbMask\r
+ * - All CanXXXProcessing must be CAN_ARC_PROCESS_TYPE_INTERRUPT\r
+ *   ie CAN_ARC_PROCESS_TYPE_POLLED not supported\r
+ * - To select the Mailboxes to use in the CAN controller use Can_Arc_MbMask\r
  * - HOH's for Tx are global and Rx are for each controller\r
  * - CanControllerTimeQuanta is NOT used. The other CanControllerXXX selects\r
  *   the proper time-quanta\r
- * - CanEcoreMbMask for Tx HOH must NOT overlap CanEcoreMbMask for Rx.\r
+ * - Can_Arc_MbMask for Tx HOH must NOT overlap Can_Arc_MbMask for Rx.\r
  * - ONLY global mask is supported( NOT 14,15 and individual )\r
  * - Numbering the CanObjectId for Tx:\r
  *     To do this correctly there are a number of things that are good to know\r
  *     1. HTH's have unique numbers.\r
  *     2. One HTH/HRH is maped to one HOH\r
- *     3. The extension CanEcoreMbMask binds FULL CAN boxes together.\r
+ *     3. The extension Can_Arc_MbMask binds FULL CAN boxes together.\r
  *\r
  *     Example:\r
  *\r
@@ -66,7 +67,7 @@
  *      1    F   0  1\r
  *      ..\r
  *      16   B   0  16  |\r
- *                  17  |    The use of CanEcoreMbMask=0x000f0000 binds these to HTH 16\r
+ *                  17  |    The use of Can_Arc_MbMask=0x000f0000 binds these to HTH 16\r
  *                  18  |    ( bits 16 to 19 set here )\r
  *                  19  |\r
  *           ...\r
@@ -214,12 +215,12 @@ typedef struct FLEXCAN_tag flexcan_t;
 #endif\r
 \r
 // Mapping between HRH and Controller//HOH\r
-typedef struct Can_EcoreObjectHOHMapStruct\r
+typedef struct Can_Arc_ObjectHOHMapStruct\r
 {\r
   uint32 HxHRef;    // Reference to HRH or HTH\r
   CanControllerIdType CanControllerRef;    // Reference to controller\r
   const Can_HardwareObjectType* CanHOHRef;       // Reference to HOH.\r
-} Can_EcoreObjectHOHMapType;\r
+} Can_Arc_ObjectHOHMapType;\r
 \r
 /* Type for holding global information used by the driver */\r
 typedef struct {\r
@@ -238,7 +239,7 @@ typedef struct {
 \r
   // This is a map that maps the HTH:s with the controller and Hoh. It is built\r
   // during Can_Init and is used to make things faster during a transmit.\r
-  Can_EcoreObjectHOHMapType CanHTHMap[NUM_OF_HTHS];\r
+  Can_Arc_ObjectHOHMapType CanHTHMap[NUM_OF_HTHS];\r
 } Can_GlobalType;\r
 \r
 // Global config\r
@@ -253,14 +254,14 @@ typedef struct {
   CanIf_ControllerModeType state;\r
   uint32               lock_cnt;\r
   // Interrupt masks that is for all Mb's in this controller\r
-  uint32               CanEcoreRxMbMask;\r
-  uint32               CanEcoreTxMbMask;\r
+  uint32               Can_Arc_RxMbMask;\r
+  uint32               Can_Arc_TxMbMask;\r
 \r
   // Used at IFLG in controller at startup\r
   uint32               iflagStart;\r
 \r
   // Statistics\r
-  Can_EcoreStatisticsType stats;\r
+  Can_Arc_StatisticsType stats;\r
 \r
   // Data stored for Txconfirmation callbacks to CanIf\r
   PduIdType swPduHandles[MAX_NUM_OF_MAILBOXES];\r
@@ -311,10 +312,10 @@ Can_UnitType CanUnit[CAN_CONTROLLER_CNT] =
  * @param hth The transmit handle\r
  * @returns Ptr to the Hoh\r
  */\r
-static const Can_HardwareObjectType * Can_FindHoh( Can_EcoreHTHType hth , uint32* controller)\r
+static const Can_HardwareObjectType * Can_FindHoh( Can_Arc_HTHType hth , uint32* controller)\r
 {\r
   const Can_HardwareObjectType *hohObj;\r
-  const Can_EcoreObjectHOHMapType *map;\r
+  const Can_Arc_ObjectHOHMapType *map;\r
   const Can_ControllerConfigType *canHwConfig;\r
 \r
   map = &Can_Global.CanHTHMap[hth];\r
@@ -387,7 +388,7 @@ void Can_F_BusOff( void  ) {        Can_BusOff(CAN_CTRL_F); }
 \r
 static void Can_Err( int unit ) {\r
   flexcan_t *canHw = GET_CONTROLLER(unit);\r
-  Can_EcoreErrorType err;\r
+  Can_Arc_ErrorType err;\r
   ESRType esr;\r
   err.R = 0;\r
 \r
@@ -402,9 +403,9 @@ static void Can_Err( int unit ) {
   err.B.RXWRN = esr.B.RXWRN;\r
   err.B.TXWRN = esr.B.TXWRN;\r
 \r
-  if (GET_CALLBACKS()->EcoreError != NULL)\r
+  if (GET_CALLBACKS()->Arc_Error != NULL)\r
   {\r
-    GET_CALLBACKS()->EcoreError(unit, err );\r
+    GET_CALLBACKS()->Arc_Error(unit, err );\r
   }\r
   // Clear ERRINT\r
   canHw->ESR.B.ERRINT = 1;\r
@@ -417,7 +418,7 @@ static void Can_AbortTx( flexcan_t *canHw, Can_UnitType *canUnit ) {
   uint8 mbNr;\r
 \r
        // Find our Tx boxes.\r
-  mbMask = canUnit->CanEcoreTxMbMask;\r
+  mbMask = canUnit->Can_Arc_TxMbMask;\r
 \r
   // Loop over the Mb's set to abort\r
   for (; mbMask; mbMask&=~(1<<mbNr)) {\r
@@ -442,8 +443,8 @@ static void Can_AbortTx( flexcan_t *canHw, Can_UnitType *canUnit ) {
   }\r
 \r
   // Ack tx interrupts\r
-  canHw->IFRL.R = canUnit->CanEcoreTxMbMask;\r
-  canUnit->iflagStart = canUnit->CanEcoreTxMbMask;\r
+  canHw->IFRL.R = canUnit->Can_Arc_TxMbMask;\r
+  canUnit->iflagStart = canUnit->Can_Arc_TxMbMask;\r
 }\r
 \r
 //-------------------------------------------------------------------\r
@@ -456,7 +457,7 @@ static void Can_AbortTx( flexcan_t *canHw, Can_UnitType *canUnit ) {
 static void Can_BusOff( int unit ) {\r
   flexcan_t *canHw = GET_CONTROLLER(unit);\r
   Can_UnitType *canUnit = GET_PRIVATE_DATA(unit);\r
-  Can_EcoreErrorType err;\r
+  Can_Arc_ErrorType err;\r
   err.R = 0;\r
 \r
   if ( canHw->ESR.B.TWRNINT )\r
@@ -475,9 +476,9 @@ static void Can_BusOff( int unit ) {
 \r
   if (err.R != 0)\r
   {\r
-    if (GET_CALLBACKS()->EcoreError != NULL)\r
+    if (GET_CALLBACKS()->Arc_Error != NULL)\r
     {\r
-      GET_CALLBACKS()->EcoreError( unit, err );\r
+      GET_CALLBACKS()->Arc_Error( unit, err );\r
     }\r
   }\r
 \r
@@ -557,12 +558,12 @@ static void Can_Isr(int unit) {
       //\r
 \r
       // Rx\r
-      hohObj= canHwConfig->CanEcoreHoh;\r
+      hohObj= canHwConfig->Can_Arc_Hoh;\r
       --hohObj;\r
       do {\r
         ++hohObj;\r
 \r
-        mbMask = hohObj->CanEcoreMbMask & iFlagLow;\r
+        mbMask = hohObj->Can_Arc_MbMask & iFlagLow;\r
 \r
         if (hohObj->CanObjectType == CAN_OBJECT_TYPE_RECEIVE)\r
         {\r
@@ -596,17 +597,17 @@ static void Can_Isr(int unit) {
             canHw->IFRL.R = (1<<mbNr);\r
           }\r
         }\r
-      } while ( !hohObj->CanEcoreEOL);\r
+      } while ( !hohObj->Can_Arc_EOL);\r
 \r
       // Tx\r
-      hohObj= canHwConfig->CanEcoreHoh;\r
+      hohObj= canHwConfig->Can_Arc_Hoh;\r
       --hohObj;\r
       do {\r
         ++hohObj;\r
 \r
         if (hohObj->CanObjectType == CAN_OBJECT_TYPE_TRANSMIT)\r
         {\r
-          mbMask = hohObj->CanEcoreMbMask & iFlagLow;\r
+          mbMask = hohObj->Can_Arc_MbMask & iFlagLow;\r
 \r
           // Loop over the Mb's for this Hoh\r
           for (; mbMask; mbMask&=~(1<<mbNr)) {\r
@@ -623,7 +624,7 @@ static void Can_Isr(int unit) {
             canHw->IFRL.R = (1<<mbNr);\r
           }\r
         }\r
-      } while ( !hohObj->CanEcoreEOL);\r
+      } while ( !hohObj->Can_Arc_EOL);\r
 #if defined(CFG_MPC5516) || defined(CFG_MPC5517)\r
     } // FIFO code\r
 #endif\r
@@ -633,7 +634,7 @@ static void Can_Isr(int unit) {
     // - Interupt on a masked box\r
   }\r
 \r
-  if (canHwConfig->CanEcoreFifo) {\r
+  if (canHwConfig->Can_Arc_Fifo) {\r
        /* Note\r
         * NOT tested at all\r
         */\r
@@ -693,7 +694,7 @@ void Can_Init( const Can_ConfigType *config ) {
   Can_Global.initRun = CAN_READY;\r
 \r
 \r
-  for (int configId=0; configId < CAN_ECORE_CTRL_CONFIG_CNT; configId++) {\r
+  for (int configId=0; configId < CAN_ARC_CTRL_CONFIG_CNT; configId++) {\r
     canHwConfig = GET_CONTROLLER_CONFIG(configId);\r
     ctlrId = canHwConfig->CanControllerId;\r
 \r
@@ -707,13 +708,13 @@ void Can_Init( const Can_ConfigType *config ) {
     canUnit->lock_cnt = 0;\r
 \r
     // Clear stats\r
-    memset(&canUnit->stats, 0, sizeof(Can_EcoreStatisticsType));\r
+    memset(&canUnit->stats, 0, sizeof(Can_Arc_StatisticsType));\r
 \r
     Can_InitController(ctlrId, canHwConfig);\r
 \r
     // Loop through all Hoh:s and map them into the HTHMap\r
     const Can_HardwareObjectType* hoh;\r
-    hoh = canHwConfig->CanEcoreHoh;\r
+    hoh = canHwConfig->Can_Arc_Hoh;\r
     hoh--;\r
     do\r
     {\r
@@ -725,7 +726,7 @@ void Can_Init( const Can_ConfigType *config ) {
         Can_Global.CanHTHMap[hoh->CanObjectId].CanHOHRef = hoh;\r
         Can_Global.CanHTHMap[hoh->CanObjectId].HxHRef = hoh->CanObjectId;\r
       }\r
-    } while (!hoh->CanEcoreEOL);\r
+    } while (!hoh->Can_Arc_EOL);\r
 \r
     // Note!\r
     // Could install handlers depending on HW objects to trap more errors\r
@@ -774,7 +775,7 @@ void Can_DeInit()
   const Can_ControllerConfigType *canHwConfig;\r
   uint32 ctlrId;\r
 \r
-  for (int configId=0; configId < CAN_ECORE_CTRL_CONFIG_CNT; configId++) {\r
+  for (int configId=0; configId < CAN_ARC_CTRL_CONFIG_CNT; configId++) {\r
     canHwConfig = GET_CONTROLLER_CONFIG(configId);\r
     ctlrId = canHwConfig->CanControllerId;\r
 \r
@@ -786,7 +787,7 @@ void Can_DeInit()
     canUnit->lock_cnt = 0;\r
 \r
     // Clear stats\r
-    memset(&canUnit->stats, 0, sizeof(Can_EcoreStatisticsType));\r
+    memset(&canUnit->stats, 0, sizeof(Can_Arc_StatisticsType));\r
   }\r
 \r
   Can_Global.config = NULL;\r
@@ -835,7 +836,7 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
 #if defined(CFG_MPC5516) || defined(CFG_MPC5517)\r
   // Note!\r
   // FIFO implemenation not tested\r
-  if( config->CanEcoreFifo ) {\r
+  if( config->Can_Arc_Fifo ) {\r
     canHw->MCR.B.FEN = 1;      // Enable FIFO\r
     canHw->MCR.B.IDAM = 0;     // We want extended id's to match with\r
   }\r
@@ -846,7 +847,7 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
   canHw->MCR.B.MAXMB = MAX_NUM_OF_MAILBOXES - 1;\r
 \r
   /* Disable selfreception */\r
-  canHw->MCR.B.SRXDIS = !config->CanEcoreLoopback;\r
+  canHw->MCR.B.SRXDIS = !config->Can_Arc_Loopback;\r
 \r
   // Clock calucation\r
   // -------------------------------------------------------------------\r
@@ -878,13 +879,13 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
   canHw->CR.B.PSEG1 = config->CanControllerSeg1;\r
   canHw->CR.B.PSEG2 = config->CanControllerSeg2;\r
   canHw->CR.B.SMP =    1;      // 3 samples better than 1 ??\r
-  canHw->CR.B.LPB =    config->CanEcoreLoopback;\r
+  canHw->CR.B.LPB =    config->Can_Arc_Loopback;\r
   canHw->CR.B.BOFFREC = 1;  // Disable bus off recovery\r
 \r
 #if defined(CFG_MPC5516) || defined(CFG_MPC5517)\r
   // Check if we use individual masks. If so accept anything(=0) for now\r
   if( canHw->MCR.B.BCC ) {\r
-    i = (config->CanEcoreFifo ? 8 : 0 );\r
+    i = (config->Can_Arc_Fifo ? 8 : 0 );\r
     for(;i<63;i++) {\r
       canHw->RXIMR[i].R = 0;\r
     }\r
@@ -892,7 +893,7 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
 #else\r
 #endif\r
   // Set the id's\r
-  if( config->CanEcoreFifo ) {\r
+  if( config->Can_Arc_Fifo ) {\r
     // Clear ID's in FIFO also, MUST set extended bit here\r
     uint32_t *fifoId = (uint32_t*)(((uint8_t *)canHw)+0xe0);\r
     for(int k=0;k<8;k++) {\r
@@ -901,7 +902,7 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
   }\r
 \r
   // Mark all slots as inactive( depending on fifo )\r
-  i = (config->CanEcoreFifo ? 8 : 0 );\r
+  i = (config->Can_Arc_Fifo ? 8 : 0 );\r
   for(; i < 63; i++) {\r
     //canHw->BUF[i].CS.B.CODE = 0;\r
     canHw->BUF[i].CS.R = 0;\r
@@ -915,12 +916,12 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
     Can_FilterMaskType mask = 0xffffffff;\r
 \r
     // Rx\r
-    hohObj = canHwConfig->CanEcoreHoh;\r
+    hohObj = canHwConfig->Can_Arc_Hoh;\r
     --hohObj;\r
     do {\r
       ++hohObj;\r
 \r
-      mbMask = hohObj->CanEcoreMbMask;\r
+      mbMask = hohObj->Can_Arc_MbMask;\r
       mbNr = 0;\r
 \r
       if (hohObj->CanObjectType == CAN_OBJECT_TYPE_RECEIVE)\r
@@ -941,16 +942,16 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
         }\r
 \r
         // Add to global mask\r
-        canUnit->CanEcoreRxMbMask |= hohObj->CanEcoreMbMask;\r
+        canUnit->Can_Arc_RxMbMask |= hohObj->Can_Arc_MbMask;\r
         if( hohObj->CanFilterMaskRef != NULL  ) {\r
           mask &= *hohObj->CanFilterMaskRef;\r
         }\r
       }\r
       else\r
       {\r
-        canUnit->CanEcoreTxMbMask |= hohObj->CanEcoreMbMask;\r
+        canUnit->Can_Arc_TxMbMask |= hohObj->Can_Arc_MbMask;\r
       }\r
-    } while( !hohObj->CanEcoreEOL );\r
+    } while( !hohObj->Can_Arc_EOL );\r
 \r
 \r
     // Set global mask\r
@@ -960,7 +961,7 @@ void Can_InitController( uint8 controller, const Can_ControllerConfigType *confi
     canHw->RX15MASK.R = 0;\r
   }\r
 \r
-  canUnit->iflagStart = canUnit->CanEcoreTxMbMask;\r
+  canUnit->iflagStart = canUnit->Can_Arc_TxMbMask;\r
 \r
   canUnit->state = CANIF_CS_STOPPED;\r
   Can_EnableControllerInterrupts(cId);\r
@@ -1077,18 +1078,18 @@ void Can_EnableControllerInterrupts( uint8 controller ) {
   canHw->IMRH.R = 0;\r
   canHw->IMRL.R = 0;\r
 \r
-  if( canHwConfig->CanRxProcessing == CAN_ECORE_PROCESS_TYPE_INTERRUPT ) {\r
+  if( canHwConfig->CanRxProcessing == CAN_ARC_PROCESS_TYPE_INTERRUPT ) {\r
     /* Turn on the interrupt mailboxes */\r
-    canHw->IMRL.R = canUnit->CanEcoreRxMbMask;\r
+    canHw->IMRL.R = canUnit->Can_Arc_RxMbMask;\r
   }\r
 \r
-  if( canHwConfig->CanTxProcessing == CAN_ECORE_PROCESS_TYPE_INTERRUPT ) {\r
+  if( canHwConfig->CanTxProcessing == CAN_ARC_PROCESS_TYPE_INTERRUPT ) {\r
     /* Turn on the interrupt mailboxes */\r
-    canHw->IMRL.R |= canUnit->CanEcoreTxMbMask;\r
+    canHw->IMRL.R |= canUnit->Can_Arc_TxMbMask;\r
   }\r
 \r
   // BusOff here represents all errors and warnings\r
-  if( canHwConfig->CanBusOffProcessing == CAN_ECORE_PROCESS_TYPE_INTERRUPT ) {\r
+  if( canHwConfig->CanBusOffProcessing == CAN_ARC_PROCESS_TYPE_INTERRUPT ) {\r
     canHw->MCR.B.WRNEN = 1;    /* Turn On warning int */\r
 \r
     canHw->CR.B.ERRMSK = 1;    /* Enable error interrupt */\r
@@ -1100,7 +1101,7 @@ void Can_EnableControllerInterrupts( uint8 controller ) {
   return;\r
 }\r
 \r
-Can_ReturnType Can_Write( Can_EcoreHTHType hth, Can_PduType *pduInfo ) {\r
+Can_ReturnType Can_Write( Can_Arc_HTHType hth, Can_PduType *pduInfo ) {\r
   uint16_t timer;\r
   uint32_t iflag;\r
   Can_ReturnType rv = CAN_OK;\r
@@ -1123,7 +1124,7 @@ Can_ReturnType Can_Write( Can_EcoreHTHType hth, Can_PduType *pduInfo ) {
 \r
   canHw = GET_CONTROLLER(controller);\r
   oldMsr = McuE_EnterCriticalSection();\r
-  iflag = canHw->IFRL.R & canUnit->CanEcoreTxMbMask;\r
+  iflag = canHw->IFRL.R & canUnit->Can_Arc_TxMbMask;\r
 \r
   // check for any free box\r
   // Normally we would just use the iflag to get the free box\r
@@ -1206,7 +1207,7 @@ void Can_MainFunction_Wakeup( void ) {
  * @param stats Pointer to data to copy statistics to\r
  */\r
 \r
-void Can_EcoreGetStatistics( uint8 controller, Can_EcoreStatisticsType *stats)\r
+void Can_Arc_GetStatistics( uint8 controller, Can_Arc_StatisticsType *stats)\r
 {\r
   Can_UnitType *canUnit = GET_PRIVATE_DATA(controller);\r
   *stats = canUnit->stats;\r
@@ -1234,7 +1235,7 @@ Can_ReturnType Can_SetControllerMode( uint8 Controller, Can_StateTransitionType
        return E_OK;\r
 }\r
 \r
-Can_ReturnType Can_Write( Can_EcoreHTHType hth, Can_PduType *pduInfo )\r
+Can_ReturnType Can_Write( Can_Arc_HTHType hth, Can_PduType *pduInfo )\r
 {\r
        // Write to mailbox on controller here.\r
        DEBUG(DEBUG_MEDIUM, "Can_Write(stub): Received data ");\r
@@ -1274,7 +1275,7 @@ void Can_MainFunction_Read( void ){}
 void Can_MainFunction_BusOff( void ){}\r
 void Can_MainFunction_Wakeup( void ){}\r
 \r
-void Can_EcoreGetStatistics( uint8 controller, Can_EcoreStatisticsType * stat){}\r
+void Can_Arc_GetStatistics( uint8 controller, Can_Arc_StatisticsType * stat){}\r
 \r
 #endif\r
 \r
index 4ff2ca4e6cefde6e5e416e872d41886180917584..db1f2ad62f860adcaf17c95a0aec91a07080cc1d 100644 (file)
@@ -121,7 +121,7 @@ typedef enum {
   EEP_ERASE,
   EEP_READ,
   EEP_WRITE,
-} Eep_EcoreJobType;
+} Eep_Arc_JobType;
 
 /* Spi job state */
 typedef enum {
@@ -136,7 +136,7 @@ typedef struct {
        Eep_AddressType eepAddr;
        uint32 left;
        Job_StateType state;
-       Eep_EcoreJobType mainState;
+       Eep_Arc_JobType mainState;
        Spi_SequenceType currSeq;
        uint32 chunkSize;
 } Eep_JobInfoType;
@@ -155,7 +155,7 @@ typedef struct {
   // Status of driver
   MemIf_StatusType    status;
   MemIf_JobResultType jobResultType;
-  Eep_EcoreJobType    jobType;
+  Eep_Arc_JobType    jobType;
 
   // Saved information from API calls.
   MemIf_AddressType   e2Addr;
index 1813c9af758878e58c1e34dbe474a502893a12ce..68d21727326ab31616919a2183451ae52c668e41 100644 (file)
@@ -316,13 +316,13 @@ typedef enum {
   FLS_JOB_ERASE,
   FLS_JOB_READ,
   FLS_JOB_WRITE,
-} Fls_EcoreJobType;
+} Fls_Arc_JobType;
 
 #if 0
 typedef struct {
   MemIf_StatusType    status;
   MemIf_JobResultType jobResultType;
-  Fls_EcoreJobType     jobType;
+  Fls_Arc_JobType      jobType;
   MemIf_AddressType   sourceAddr;
   uint8 *targetAddr;
   MemIf_LengthType length;
@@ -354,7 +354,7 @@ typedef struct {
 
   MemIf_StatusType    status;
   MemIf_JobResultType jobResultType;
-  Fls_EcoreJobType     jobType;
+  Fls_Arc_JobType      jobType;
   MemIf_AddressType   sourceAddr;
   uint8 *targetAddr;
   MemIf_LengthType length;
index 38682f64e78597c11400da82d753467a37fd22f8..77a654ba675a4adc8acef0a08ae9b7ea6f7c3319 100644 (file)
@@ -128,9 +128,10 @@ static void Mcu_LossOfCLock( void  ) {
 #define SPR_PIR 286\r
 #define SPR_PVR 287\r
 \r
-#define CORE_PVR_E200Z1   0x81440000UL\r
-#define CORE_PVR_E200Z0   0x81710000UL\r
-#define CORE_PVR_E200Z6   0x81170000UL\r
+#define CORE_PVR_E200Z1        0x81440000UL\r
+#define CORE_PVR_E200Z0        0x81710000UL
+#define CORE_PVR_E200Z3        0x81120000UL\r
+#define CORE_PVR_E200Z6        0x81170000UL\r
 \r
 \r
 typedef struct {\r
@@ -153,12 +154,17 @@ cpu_info_t cpu_info_list[] =
     {\r
     .name = "MPC5516",\r
     .pvr = CORE_PVR_E200Z0,\r
-    },\r
+    },
 #elif defined(CFG_MPC5567)\r
     {\r
        .name = "MPC5567",\r
        .pvr = CORE_PVR_E200Z6,\r
-    }\r
+    }
+#elif defined(CFG_MPC5633)
+    {
+    .name = "MPC563X",
+    .pvr = CORE_PVR_E200Z3,
+    },
 #endif\r
 };\r
 \r
@@ -176,7 +182,12 @@ core_info_t core_info_list[] = {
     {\r
        .name = "CORE_E200Z6",\r
        .pvr = CORE_PVR_E200Z6,\r
-    }\r
+    }
+#elif defined(CFG_MPC5633)
+    {
+    .name = "CORE_E200Z3",
+    .pvr = CORE_PVR_E200Z3,
+    },\r
 #endif\r
 };\r
 \r
@@ -488,13 +499,14 @@ uint32_t McuE_GetSystemClock(void)
    * System clock calculation\r
    *\r
    * 5516 -  f_sys = extal * (emfd+16) / ( (eprediv+1) * ( erfd+1 ));\r
-   * 5567 -  f_sys = extal * (emfd+4) / ( (eprediv+1) * ( 2^erfd ));\r
+   * 5567 -  f_sys = extal * (emfd+4) / ( (eprediv+1) * ( 2^erfd ));
+   * 563x -  We run in legacy mode = 5567
    */\r
 #if defined(CFG_MPC5516)\r
   uint32_t eprediv = FMPLL.ESYNCR1.B.EPREDIV;\r
   uint32_t emfd = FMPLL.ESYNCR1.B.EMFD;\r
   uint32_t erfd = FMPLL.ESYNCR2.B.ERFD;\r
-#elif defined(CFG_MPC5554) || defined(CFG_MPC5567)\r
+#elif defined(CFG_MPC5554) || defined(CFG_MPC5567) || defined(CFG_MPC5633)\r
   uint32_t eprediv = FMPLL.SYNCR.B.PREDIV;\r
   uint32_t emfd = FMPLL.SYNCR.B.MFD;\r
   uint32_t erfd = FMPLL.SYNCR.B.RFD;\r
@@ -502,7 +514,7 @@ uint32_t McuE_GetSystemClock(void)
   uint32_t f_sys;\r
   uint32  extal = Mcu_Global.config->McuClockSettingConfig[Mcu_Global.clockSetting].McuClockReferencePoint;\r
 \r
-  f_sys =  CALC_SYSTEM_CLOCK(extal,emfd,eprediv,erfd);\r
+  f_sys =  CALC_SYSTEM_CLOCK(extal,emfd,eprediv,erfd);
 \r
   return f_sys;\r
 }\r
index f13595d4289bc5f2a87ee9b4f7622e7af2ef7af5..dbb844237fd7f20c7db8d31a2e0ab70ee83a0b8f 100644 (file)
@@ -49,7 +49,7 @@
 #endif\r
 #include "Mcu.h"\r
 \r
-#if PWM_DEV_EROR_DETECT==ON\r
+#if PWM_DEV_EROR_DETECT==STD_ON\r
        #define PWM_VALIDATE(_exp, _errid) \\r
                if (!(_exp)) { \\r
                        Pwm_ReportError(_errid); \\r
@@ -75,7 +75,7 @@ static Pwm_ModuleStateType Pwm_ModuleState = PWM_STATE_UNINITIALIZED;
 typedef struct {\r
        Pwm_ChannelClassType Class;\r
 \r
-       #if PWM_NOTIFICATION_SUPPORTED==ON\r
+       #if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
                Pwm_NotificationHandlerType NotificationRoutine;\r
                Pwm_EdgeNotificationType NotificationState;\r
        #endif\r
@@ -88,7 +88,7 @@ Pwm_ChannelStructType ChannelRuntimeStruct[16];
 void inline Pwm_InitChannel(Pwm_ChannelType Channel);\r
 void inline Pwm_DeInitChannel(Pwm_ChannelType Channel);\r
 \r
-#if PWM_NOTIFICATION_SUPPORTED==ON\r
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
 static void Pwm_Isr(void);\r
 #endif\r
 \r
@@ -96,7 +96,7 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
     Pwm_ChannelType channel_iterator;\r
 \r
     Pwm_VALIDATE_UNINITIALIZED();\r
-    #if PWM_DEV_EROR_DETECT==ON\r
+    #if PWM_DEV_EROR_DETECT==STD_ON\r
         /*\r
          * PWM046: If development error detection is enabled for the Pwm module,\r
          * the function Pwm_Init shall raise development error PWM_E_PARAM_CONFIG\r
@@ -114,7 +114,7 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
         #endif\r
     #endif\r
 \r
-    #if PWM_NOTIFICATION_SUPPORTED==ON\r
+    #if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
         // Create a task for our interrupt service routine.\r
         TaskType tid = Os_CreateIsr(Pwm_Isr, PWM_ISR_PRIORITY /*prio*/, "PwmIsr");\r
     #endif\r
@@ -141,7 +141,7 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
                 (void*) &ConfigPtr->Channels[channel_iterator].r,\r
                 sizeof(Pwm_ChannelRegisterType));\r
 \r
-        #if PWM_NOTIFICATION_SUPPORTED==ON\r
+        #if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
                 /*\r
                  * PWM052: The function Pwm_Init shall disable all notifications.\r
                  *\r
@@ -157,7 +157,7 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
     }\r
 }\r
 \r
-#if PWM_DEINIT_API==ON\r
+#if PWM_DEINIT_API==STD_ON\r
 \r
 // TODO: Test that this function in fact turns the channel off.\r
 void inline Pwm_DeInitChannel(Pwm_ChannelType Channel) {\r
@@ -174,7 +174,7 @@ void inline Pwm_DeInitChannel(Pwm_ChannelType Channel) {
     /*\r
      * PWM052: The function Pwm_DeInit shall disable all notifications.\r
      */\r
-    #if PWM_NOTIFICATION_SUPPORTED==ON\r
+    #if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
         Pwm_DisableNotification(Channel);\r
     #endif\r
 }\r
@@ -205,7 +205,7 @@ void Pwm_GetVersionInfo(Std_VersionInfoType* VersionInfo) {
  * PWM083: The function Pwm_SetPeriodAndDuty shall be pre compile time\r
  * changeable ON/OFF by the configuration parameter PwmSetPeriodAndDuty.\r
  */\r
-#if PWM_SET_PERIOD_AND_DUTY==ON\r
+#if PWM_SET_PERIOD_AND_DUTY==STD_ON\r
        void Pwm_SetPeriodAndDuty(Pwm_ChannelType Channel, Pwm_PeriodType Period,\r
                        Pwm_DutyCycleType DutyCycle) {\r
 \r
@@ -279,7 +279,7 @@ void Pwm_SetOutputToIdle(Pwm_ChannelType Channel) {
  * PWM085: The function Pwm_GetOutputState shall be pre compile configurable\r
  * ON/OFF by the configuration parameter PwmGetOutputState\r
  */\r
-#if PWM_GET_OUTPUT_STATE==ON\r
+#if PWM_GET_OUTPUT_STATE==STD_ON\r
        /*\r
         * PWM022: The function Pwm_GetOutputState shall read the internal state\r
         * of the PWM output signal and return it.\r
@@ -312,7 +312,7 @@ void Pwm_SetOutputToIdle(Pwm_ChannelType Channel) {
        }\r
 #endif\r
 \r
-#if PWM_NOTIFICATION_SUPPORTED==ON\r
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
        void Pwm_DisableNotification(Pwm_ChannelType Channel) {\r
                Pwm_VALIDATE_CHANNEL(Channel);\r
                Pwm_VALIDATE_INITIALIZED();\r
@@ -360,4 +360,4 @@ void Pwm_SetOutputToIdle(Pwm_ChannelType Channel) {
                }\r
        }\r
 \r
-#endif /* PWM_NOTIFICATION_SUPPORED == ON */\r
+#endif /* PWM_NOTIFICATION_SUPPORED == STD_ON */\r
diff --git a/arch/ppc/mpc55xx/drivers/mpc563m.h b/arch/ppc/mpc55xx/drivers/mpc563m.h
new file mode 100644 (file)
index 0000000..2d99fc7
--- /dev/null
@@ -0,0 +1,3519 @@
+/**************************************************************************/\r
+/* FILE NAME: mpc563m.h                      COPYRIGHT (c) Freescale 2008 */\r
+/* VERSION:  1.2                                  All Rights Reserved     */\r
+/*                                                                        */\r
+/* DESCRIPTION:                                                           */\r
+/* This file contain all of the register and bit field definitions for    */\r
+/* MPC563m.                                                               */\r
+/*========================================================================*/\r
+/* UPDATE HISTORY                                                         */\r
+/* REV      AUTHOR      DATE       DESCRIPTION OF CHANGE                  */\r
+/* ---   -----------  ---------    ---------------------                  */\r
+/* 1.0   G. Emerson   31/OCT/07    Initial version.                       */\r
+/* 1.1   G. Emerson   20/DEC/07    Added SYSDIV HLT HLTACK                */\r
+/*                                 Added ESYNCR1 ESYNCR2 SYNFMMR          */\r
+/* 1.2   G. Emerson   31/JAN/08    Change eMIOS channels so there are 24. */\r
+/*                                 8 channels in the middle of the range  */\r
+/*                                 do not exist                           */\r
+/**************************************************************************/\r
+/*>>>>NOTE! this file is auto-generated please do not edit it!<<<<*/\r
+\r
+#ifndef _MPC563M_H_\r
+#define _MPC563M_H_\r
+\r
+#include "typedefs.h"\r
+\r
+#ifdef  __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+#ifdef __MWERKS__\r
+#pragma push\r
+#pragma ANSI_strict off\r
+#endif\r
+\r
+/****************************************************************************/\r
+/*                          MODULE : PBRIDGE Peripheral Bridge            */\r
+/****************************************************************************/\r
+    struct PBRIDGE_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t MBW0:1;\r
+                vuint32_t MTR0:1;\r
+                vuint32_t MTW0:1;\r
+                vuint32_t MPL0:1;\r
+                vuint32_t MBW1:1;\r
+                vuint32_t MTR1:1;\r
+                vuint32_t MTW1:1;\r
+                vuint32_t MPL1:1;\r
+                vuint32_t MBW2:1;\r
+                vuint32_t MTR2:1;\r
+                vuint32_t MTW2:1;\r
+                vuint32_t MPL2:1;\r
+                vuint32_t MBW3:1;\r
+                vuint32_t MTR3:1;\r
+                vuint32_t MTW3:1;\r
+                vuint32_t MPL3:1;\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:4;\r
+            } B;\r
+        } MPCR;                 /* Master Privilege Control Register */\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : FMPLL                                       */\r
+/****************************************************************************/\r
+    struct FMPLL_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:1;\r
+                vuint32_t PREDIV:3;\r
+                vuint32_t MFD:5;\r
+                  vuint32_t:1;\r
+                vuint32_t RFD:3;\r
+                vuint32_t LOCEN:1;\r
+                vuint32_t LOLRE:1;\r
+                vuint32_t LOCRE:1;\r
+                  vuint32_t:1;\r
+                vuint32_t LOLIRQ:1;\r
+                vuint32_t LOCIRQ:1;\r
+                  vuint32_t:13;\r
+            } B;\r
+        } SYNCR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:22;\r
+                vuint32_t LOLF:1;\r
+                vuint32_t LOC:1;\r
+                vuint32_t MODE:1;\r
+                vuint32_t PLLSEL:1;\r
+                vuint32_t PLLREF:1;\r
+                vuint32_t LOCKS:1;\r
+                vuint32_t LOCK:1;\r
+                vuint32_t LOCF:1;\r
+                  vuint32_t:2;\r
+            } B;\r
+        } SYNSR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t EMODE:1;\r
+                vuint32_t CLKCFG:3;\r
+                  vuint32_t:8;\r
+                vuint32_t EPREDIV:4;\r
+                  vuint32_t:9;\r
+                vuint32_t EMFD:7;\r
+            } B;\r
+        } ESYNCR1;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:8;\r
+                vuint32_t LOCEN:1;\r
+                vuint32_t LOLRE:1;\r
+                vuint32_t LOCRE:1;\r
+                vuint32_t LOLIRQ:1;\r
+                vuint32_t LOCIRQ:1;\r
+                  vuint32_t:17;\r
+                vuint32_t ERFD:2;\r
+            } B;\r
+        } ESYNCR2;\r
+\r
+        int32_t FMPLL_reserved0[2];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:1;\r
+                vuint32_t MODEN:1;\r
+                vuint32_t MODSEL:1;\r
+                vuint32_t MODPERIOD:13;\r
+                  vuint32_t:1;\r
+                vuint32_t INC_STEP:15;\r
+            } B;\r
+        } SYNFMMR;\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : External Bus Interface (EBI)                */\r
+/****************************************************************************/\r
+    struct CS_tag {\r
+        union {                 /* Base Register Bank */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BA:17;\r
+                  vuint32_t:3;\r
+                vuint32_t PS:1;\r
+                  vuint32_t:4;\r
+                vuint32_t BL:1;\r
+                vuint32_t WEBS:1;\r
+                vuint32_t TBDIP:1;\r
+                  vuint32_t:2;\r
+                vuint32_t BI:1;\r
+                vuint32_t V:1;\r
+            } B;\r
+        } BR;\r
+\r
+        union {                 /* Option Register Bank */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t AM:17;\r
+                  vuint32_t:7;\r
+                vuint32_t SCY:4;\r
+                  vuint32_t:1;\r
+                vuint32_t BSCY:2;\r
+                  vuint32_t:1;\r
+            } B;\r
+        } OR;\r
+    };\r
+\r
+    struct CAL_CS_tag {\r
+        union {                 /* Calibration Base Register Bank */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BA:17;\r
+                  vuint32_t:3;\r
+                vuint32_t PS:1;\r
+                  vuint32_t:4;\r
+                vuint32_t BL:1;\r
+                vuint32_t WEBS:1;\r
+                vuint32_t TBDIP:1;\r
+                  vuint32_t:2;\r
+                vuint32_t BI:1;\r
+                vuint32_t V:1;\r
+            } B;\r
+        } BR;\r
+\r
+        union {                 /* Calibration Option Register Bank */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t AM:17;\r
+                  vuint32_t:7;\r
+                vuint32_t SCY:4;\r
+                  vuint32_t:1;\r
+                vuint32_t BSCY:2;\r
+                  vuint32_t:1;\r
+            } B;\r
+        } OR;\r
+    };\r
+\r
+    struct EBI_tag {\r
+        union {                 /* Module Configuration Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:5;\r
+                vuint32_t SIZEEN:1;\r
+                vuint32_t SIZE:2;\r
+                  vuint32_t:8;\r
+                vuint32_t ACGE:1;\r
+                vuint32_t EXTM:1;\r
+                vuint32_t EARB:1;\r
+                vuint32_t EARP:2;\r
+                  vuint32_t:4;\r
+                vuint32_t MDIS:1;\r
+                  vuint32_t:5;\r
+                vuint32_t DBM:1;\r
+            } B;\r
+        } MCR;\r
+\r
+        uint32_t EBI_reserved1;\r
+\r
+        union {                 /* Transfer Error Status Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:30;\r
+                vuint32_t TEAF:1;\r
+                vuint32_t BMTF:1;\r
+            } B;\r
+        } TESR;\r
+\r
+        union {                 /* Bus Monitor Control Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t BMT:8;\r
+                vuint32_t BME:1;\r
+                  vuint32_t:7;\r
+            } B;\r
+        } BMCR;\r
+\r
+        struct CS_tag CS[4];\r
+\r
+/* Calibration registers */\r
+        uint32_t EBI_reserved2[4];\r
+        struct CAL_CS_tag CAL_CS[4];\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : FLASH                                       */\r
+/****************************************************************************/\r
+    struct FLASH_tag {\r
+        union {                 /* Module Configuration Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+                vuint32_t SIZE:4;\r
+                  vuint32_t:1;\r
+                vuint32_t LAS:3;\r
+                  vuint32_t:3;\r
+                vuint32_t MAS:1;\r
+                vuint32_t EER:1;\r
+                vuint32_t RWE:1;\r
+                vuint32_t BBEPE:1;\r
+                vuint32_t EPE:1;\r
+                vuint32_t PEAS:1;\r
+                vuint32_t DONE:1;\r
+                vuint32_t PEG:1;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t PRD:1;        /* Include PRD Field */\r
+\r
+                vuint32_t STOP:1;\r
+                  vuint32_t:1;\r
+                vuint32_t PGM:1;\r
+                vuint32_t PSUS:1;\r
+                vuint32_t ERS:1;\r
+                vuint32_t ESUS:1;\r
+                vuint32_t EHV:1;\r
+            } B;\r
+        } MCR;\r
+\r
+        union {                 /* LML Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t LME:1;\r
+                  vuint32_t:10;\r
+                vuint32_t SLOCK:1;\r
+                vuint32_t MLOCK:4;\r
+                vuint32_t LLOCK:16;\r
+            } B;\r
+        } LMLR;\r
+\r
+        union {                 /* HL Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t HBE:1;\r
+                  vuint32_t:3;\r
+                vuint32_t HBLOCK:28;\r
+            } B;\r
+        } HLR;\r
+\r
+        union {                 /* SLML Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t SLE:1;\r
+                  vuint32_t:10;\r
+                vuint32_t SSLOCK:1;\r
+                vuint32_t SMLOCK:4;\r
+                vuint32_t SLLOCK:16;\r
+            } B;\r
+        } SLMLR;\r
+\r
+        union {                 /* LMS Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:12;\r
+                vuint32_t MSEL:4;\r
+                vuint32_t LSEL:16;\r
+            } B;\r
+        } LMSR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+                vuint32_t HBSEL:28;\r
+            } B;\r
+        } HSR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:10;\r
+                vuint32_t ADDR:19;\r
+                  vuint32_t:3;\r
+            } B;\r
+        } AR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+\r
+                vuint32_t:11;\r
+\r
+                vuint32_t:1;\r
+\r
+                vuint32_t M3PFE:1;\r
+                vuint32_t M2PFE:1;\r
+                vuint32_t M1PFE:1;\r
+                vuint32_t M0PFE:1;\r
+                vuint32_t APC:3;\r
+                vuint32_t WWSC:2;\r
+                vuint32_t RWSC:3;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t DPFEN:1;\r
+                  vuint32_t:1;\r
+                vuint32_t IPFEN:1;\r
+\r
+                vuint32_t PFLIM:3;\r
+                vuint32_t BFEN:1;\r
+            } B;\r
+        } BIUCR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+\r
+                vuint32_t:22;\r
+\r
+                vuint32_t:2;\r
+\r
+                vuint32_t M3AP:2;\r
+                vuint32_t M2AP:2;\r
+                vuint32_t M1AP:2;\r
+                vuint32_t M0AP:2;\r
+            } B;\r
+        } BIUAPR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t LBCFG:2;\r
+                  vuint32_t:30;\r
+            } B;\r
+        } BIUCR2;\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : SIU                                         */\r
+/****************************************************************************/\r
+    struct SIU_tag {\r
+        int32_t SIU_reserved0;\r
+\r
+        union {                 /* MCU ID Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t PARTNUM:16;\r
+                vuint32_t MASKNUM:16;\r
+            } B;\r
+        } MIDR;\r
+        int32_t SIU_reserved00;\r
+\r
+        union {                 /* Reset Status Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t PORS:1;\r
+                vuint32_t ERS:1;\r
+                vuint32_t LLRS:1;\r
+                vuint32_t LCRS:1;\r
+                vuint32_t WDRS:1;\r
+                vuint32_t CRS:1;\r
+                  vuint32_t:8;\r
+                vuint32_t SSRS:1;\r
+                vuint32_t SERF:1;\r
+                vuint32_t WKPCFG:1;\r
+                  vuint32_t:12;\r
+                vuint32_t BOOTCFG:2;\r
+                vuint32_t RGF:1;\r
+            } B;\r
+        } RSR;\r
+\r
+        union {                 /* System Reset Control Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t SSR:1;\r
+                vuint32_t SER:1;\r
+                  vuint32_t:14;\r
+                vuint32_t CRE:1;\r
+                  vuint32_t:15;\r
+            } B;\r
+        } SRCR;\r
+\r
+        union {                 /* External Interrupt Status Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t EIF15:1;\r
+                vuint32_t EIF14:1;\r
+                vuint32_t EIF13:1;\r
+                vuint32_t EIF12:1;\r
+                vuint32_t EIF11:1;\r
+                vuint32_t EIF10:1;\r
+                vuint32_t EIF9:1;\r
+                vuint32_t EIF8:1;\r
+                vuint32_t EIF7:1;\r
+                vuint32_t EIF6:1;\r
+                vuint32_t EIF5:1;\r
+                vuint32_t EIF4:1;\r
+                vuint32_t EIF3:1;\r
+                vuint32_t EIF2:1;\r
+                vuint32_t EIF1:1;\r
+                vuint32_t EIF0:1;\r
+            } B;\r
+        } EISR;\r
+\r
+        union {                 /* DMA/Interrupt Request Enable Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t EIRE15:1;\r
+                vuint32_t EIRE14:1;\r
+                vuint32_t EIRE13:1;\r
+                vuint32_t EIRE12:1;\r
+                vuint32_t EIRE11:1;\r
+                vuint32_t EIRE10:1;\r
+                vuint32_t EIRE9:1;\r
+                vuint32_t EIRE8:1;\r
+                vuint32_t EIRE7:1;\r
+                vuint32_t EIRE6:1;\r
+                vuint32_t EIRE5:1;\r
+                vuint32_t EIRE4:1;\r
+                vuint32_t EIRE3:1;\r
+                vuint32_t EIRE2:1;\r
+                vuint32_t EIRE1:1;\r
+                vuint32_t EIRE0:1;\r
+            } B;\r
+        } DIRER;\r
+\r
+        union {                 /* DMA/Interrupt Select Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:28;\r
+                vuint32_t DIRS3:1;\r
+                vuint32_t DIRS2:1;\r
+                vuint32_t DIRS1:1;\r
+                vuint32_t DIRS0:1;\r
+            } B;\r
+        } DIRSR;\r
+\r
+        union {                 /* Overrun Status Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t OVF15:1;\r
+                vuint32_t OVF14:1;\r
+                vuint32_t OVF13:1;\r
+                vuint32_t OVF12:1;\r
+                vuint32_t OVF11:1;\r
+                vuint32_t OVF10:1;\r
+                vuint32_t OVF9:1;\r
+                vuint32_t OVF8:1;\r
+                vuint32_t OVF7:1;\r
+                vuint32_t OVF6:1;\r
+                vuint32_t OVF5:1;\r
+                vuint32_t OVF4:1;\r
+                vuint32_t OVF3:1;\r
+                vuint32_t OVF2:1;\r
+                vuint32_t OVF1:1;\r
+                vuint32_t OVF0:1;\r
+            } B;\r
+        } OSR;\r
+\r
+        union {                 /* Overrun Request Enable Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t ORE15:1;\r
+                vuint32_t ORE14:1;\r
+                vuint32_t ORE13:1;\r
+                vuint32_t ORE12:1;\r
+                vuint32_t ORE11:1;\r
+                vuint32_t ORE10:1;\r
+                vuint32_t ORE9:1;\r
+                vuint32_t ORE8:1;\r
+                vuint32_t ORE7:1;\r
+                vuint32_t ORE6:1;\r
+                vuint32_t ORE5:1;\r
+                vuint32_t ORE4:1;\r
+                vuint32_t ORE3:1;\r
+                vuint32_t ORE2:1;\r
+                vuint32_t ORE1:1;\r
+                vuint32_t ORE0:1;\r
+            } B;\r
+        } ORER;\r
+\r
+        union {                 /* External IRQ Rising-Edge Event Enable Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t IREE15:1;\r
+                vuint32_t IREE14:1;\r
+                vuint32_t IREE13:1;\r
+                vuint32_t IREE12:1;\r
+                vuint32_t IREE11:1;\r
+                vuint32_t IREE10:1;\r
+                vuint32_t IREE9:1;\r
+                vuint32_t IREE8:1;\r
+                vuint32_t IREE7:1;\r
+                vuint32_t IREE6:1;\r
+                vuint32_t IREE5:1;\r
+                vuint32_t IREE4:1;\r
+                vuint32_t IREE3:1;\r
+                vuint32_t IREE2:1;\r
+                vuint32_t IREE1:1;\r
+                vuint32_t IREE0:1;\r
+            } B;\r
+        } IREER;\r
+\r
+        union {                 /* External IRQ Falling-Edge Event Enable Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t IFEE15:1;\r
+                vuint32_t IFEE14:1;\r
+                vuint32_t IFEE13:1;\r
+                vuint32_t IFEE12:1;\r
+                vuint32_t IFEE11:1;\r
+                vuint32_t IFEE10:1;\r
+                vuint32_t IFEE9:1;\r
+                vuint32_t IFEE8:1;\r
+                vuint32_t IFEE7:1;\r
+                vuint32_t IFEE6:1;\r
+                vuint32_t IFEE5:1;\r
+                vuint32_t IFEE4:1;\r
+                vuint32_t IFEE3:1;\r
+                vuint32_t IFEE2:1;\r
+                vuint32_t IFEE1:1;\r
+                vuint32_t IFEE0:1;\r
+            } B;\r
+        } IFEER;\r
+\r
+        union {                 /* External IRQ Digital Filter Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:28;\r
+                vuint32_t DFL:4;\r
+            } B;\r
+        } IDFR;\r
+\r
+        int32_t SIU_reserved1[3];\r
+\r
+        union {                 /* Pad Configuration Registers */\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t:3;\r
+                vuint16_t PA:3;\r
+                vuint16_t OBE:1;\r
+                vuint16_t IBE:1;\r
+                vuint16_t DSC:2;\r
+                vuint16_t ODE:1;\r
+                vuint16_t HYS:1;\r
+                vuint16_t SRC:2;\r
+                vuint16_t WPE:1;\r
+                vuint16_t WPS:1;\r
+            } B;\r
+        } PCR[512];\r
+\r
+        int16_t SIU_reserved_0[224];\r
+\r
+        union {                 /* GPIO Pin Data Output Registers */\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:7;\r
+                vuint8_t PDO:1;\r
+            } B;\r
+        } GPDO[256];\r
+\r
+        int32_t SIU_reserved_3[64];\r
+\r
+        union {                 /* GPIO Pin Data Input Registers */\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:7;\r
+                vuint8_t PDI:1;\r
+            } B;\r
+        } GPDI[256];\r
+\r
+        union {                 /* IMUX Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TSEL5:2;\r
+                vuint32_t TSEL4:2;\r
+                vuint32_t TSEL3:2;\r
+                vuint32_t TSEL2:2;\r
+                vuint32_t TSEL1:2;\r
+                vuint32_t TSEL0:2;\r
+                  vuint32_t:20;\r
+            } B;\r
+        } ETISR;\r
+\r
+        union {                 /* IMUX Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t ESEL15:2;\r
+                vuint32_t ESEL14:2;\r
+                vuint32_t ESEL13:2;\r
+                vuint32_t ESEL12:2;\r
+                vuint32_t ESEL11:2;\r
+                vuint32_t ESEL10:2;\r
+                vuint32_t ESEL9:2;\r
+                vuint32_t ESEL8:2;\r
+                vuint32_t ESEL7:2;\r
+                vuint32_t ESEL6:2;\r
+                vuint32_t ESEL5:2;\r
+                vuint32_t ESEL4:2;\r
+                vuint32_t ESEL3:2;\r
+                vuint32_t ESEL2:2;\r
+                vuint32_t ESEL1:2;\r
+                vuint32_t ESEL0:2;\r
+            } B;\r
+        } EIISR;\r
+\r
+        union {                 /* IMUX Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t SINSELA:2;\r
+                vuint32_t SSSELA:2;\r
+                vuint32_t SCKSELA:2;\r
+                vuint32_t TRIGSELA:2;\r
+                vuint32_t SINSELB:2;\r
+                vuint32_t SSSELB:2;\r
+                vuint32_t SCKSELB:2;\r
+                vuint32_t TRIGSELB:2;\r
+                vuint32_t SINSELC:2;\r
+                vuint32_t SSSELC:2;\r
+                vuint32_t SCKSELC:2;\r
+                vuint32_t TRIGSELC:2;\r
+                vuint32_t SINSELD:2;\r
+                vuint32_t SSSELD:2;\r
+                vuint32_t SCKSELD:2;\r
+                vuint32_t TRIGSELD:2;\r
+            } B;\r
+        } DISR;\r
+\r
+        int32_t SIU_reserved2[29];\r
+\r
+        union {                 /* Chip Configuration Register Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:14;\r
+                vuint32_t MATCH:1;\r
+                vuint32_t DISNEX:1;\r
+                  vuint32_t:16;\r
+            } B;\r
+        } CCR;\r
+\r
+        union {                 /* External Clock Configuration Register Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:18;\r
+                vuint32_t ENGDIV:6;\r
+                  vuint32_t:4;\r
+                vuint32_t EBTS:1;\r
+                  vuint32_t:1;\r
+                vuint32_t EBDF:2;\r
+            } B;\r
+        } ECCR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CARH;\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CARL;\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CBRH;\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CBRL;\r
+\r
+        int32_t SIU_reserved3[2];\r
+\r
+        union {                 /* System Clock Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:27;\r
+                vuint32_t BYPASS:1;\r
+                vuint32_t SYSCLKDIV:2;\r
+                  vuint32_t:2;\r
+            } B;\r
+        } SYSDIV;\r
+\r
+        union {\r
+            vuint32_t R;\r
+\r
+        } HLT;\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } HLTACK;\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : EMIOS                                  */\r
+/****************************************************************************/\r
+    struct EMIOS_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:1;\r
+                vuint32_t MDIS:1;\r
+                vuint32_t FRZ:1;\r
+                vuint32_t GTBE:1;\r
+                vuint32_t ETB:1;\r
+                vuint32_t GPREN:1;\r
+                  vuint32_t:6;\r
+                vuint32_t SRV:4;\r
+                vuint32_t GPRE:8;\r
+                  vuint32_t:8;\r
+            } B;\r
+        } MCR;                  /* Module Configuration Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:8;\r
+                vuint32_t F23:1;\r
+                vuint32_t F22:1;\r
+                vuint32_t F21:1;\r
+                vuint32_t F20:1;\r
+                vuint32_t F19:1;\r
+                vuint32_t F18:1;\r
+                vuint32_t F17:1;\r
+                vuint32_t F16:1;\r
+                vuint32_t F15:1;\r
+                vuint32_t F14:1;\r
+                vuint32_t F13:1;\r
+                vuint32_t F12:1;\r
+                vuint32_t F11:1;\r
+                vuint32_t F10:1;\r
+                vuint32_t F9:1;\r
+                vuint32_t F8:1;\r
+                vuint32_t F7:1;\r
+                vuint32_t F6:1;\r
+                vuint32_t F5:1;\r
+                vuint32_t F4:1;\r
+                vuint32_t F3:1;\r
+                vuint32_t F2:1;\r
+                vuint32_t F1:1;\r
+                vuint32_t F0:1;\r
+            } B;\r
+        } GFR;                  /* Global FLAG Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:8;\r
+                vuint32_t OU23:1;\r
+                vuint32_t OU22:1;\r
+                vuint32_t OU21:1;\r
+                vuint32_t OU20:1;\r
+                vuint32_t OU19:1;\r
+                vuint32_t OU18:1;\r
+                vuint32_t OU17:1;\r
+                vuint32_t OU16:1;\r
+                vuint32_t OU15:1;\r
+                vuint32_t OU14:1;\r
+                vuint32_t OU13:1;\r
+                vuint32_t OU12:1;\r
+                vuint32_t OU11:1;\r
+                vuint32_t OU10:1;\r
+                vuint32_t OU9:1;\r
+                vuint32_t OU8:1;\r
+                vuint32_t OU7:1;\r
+                vuint32_t OU6:1;\r
+                vuint32_t OU5:1;\r
+                vuint32_t OU4:1;\r
+                vuint32_t OU3:1;\r
+                vuint32_t OU2:1;\r
+                vuint32_t OU1:1;\r
+                vuint32_t OU0:1;\r
+            } B;\r
+        } OUDR;                 /* Output Update Disable Register */\r
+\r
+        uint32_t emios_reserved[5];\r
+\r
+        struct {\r
+            union {\r
+                vuint32_t R;    /* Channel A Data Register */\r
+            } CADR;\r
+\r
+            union {\r
+                vuint32_t R;    /* Channel B Data Register */\r
+            } CBDR;\r
+\r
+            union {\r
+                vuint32_t R;    /* Channel Counter Register */\r
+            } CCNTR;\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t FREN:1;\r
+                    vuint32_t ODIS:1;\r
+                    vuint32_t ODISSL:2;\r
+                    vuint32_t UCPRE:2;\r
+                    vuint32_t UCPREN:1;\r
+                    vuint32_t DMA:1;\r
+                      vuint32_t:1;\r
+                    vuint32_t IF:4;\r
+                    vuint32_t FCK:1;\r
+                    vuint32_t FEN:1;\r
+                      vuint32_t:3;\r
+                    vuint32_t FORCMA:1;\r
+                    vuint32_t FORCMB:1;\r
+                      vuint32_t:1;\r
+                    vuint32_t BSL:2;\r
+                    vuint32_t EDSEL:1;\r
+                    vuint32_t EDPOL:1;\r
+                    vuint32_t MODE:7;\r
+                } B;\r
+            } CCR;              /* Channel Control Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t OVR:1;\r
+                      vuint32_t:15;\r
+                    vuint32_t OVFL:1;\r
+                      vuint32_t:12;\r
+                    vuint32_t UCIN:1;\r
+                    vuint32_t UCOUT:1;\r
+                    vuint32_t FLAG:1;\r
+                } B;\r
+            } CSR;              /* Channel Status Register */\r
+            uint32_t emios_channel_reserved[3];\r
+\r
+        } CH[24];\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                              MODULE :ETPU                                */\r
+/****************************************************************************/\r
+\r
+/***************************Configuration Registers**************************/\r
+\r
+    struct ETPU_tag {\r
+        union {                 /* MODULE CONFIGURATION REGISTER */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t GEC:1;        /* Global Exception Clear */\r
+                  vuint32_t:3;\r
+                vuint32_t MGE1:1;       /* Microcode Global Exception-ETPU_A */\r
+\r
+                  vuint32_t:1;  /* For single ETPU implementations */\r
+\r
+                vuint32_t ILF1:1;       /* Illegal Instruction Flag-ETPU_A */\r
+\r
+                  vuint32_t:1;  /* For single ETPU implementations */\r
+\r
+                  vuint32_t:3;\r
+                vuint32_t SCMSIZE:5;    /* Shared Code Memory size */\r
+                  vuint32_t:5;\r
+                vuint32_t SCMMISF:1;    /* SCM MISC Flag */\r
+                vuint32_t SCMMISEN:1;   /* SCM MISC Enable */\r
+                  vuint32_t:2;\r
+                vuint32_t VIS:1;        /* SCM Visability */\r
+                  vuint32_t:5;\r
+                vuint32_t GTBE:1;       /* Global Time Base Enable */\r
+            } B;\r
+        } MCR;\r
+\r
+        union {                 /* COHERENT DUAL-PARAMETER CONTROL */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t STS:1;        /* Start Status bit */\r
+                vuint32_t CTBASE:5;     /* Channel Transfer Base */\r
+                vuint32_t PBASE:10;     /* Parameter Buffer Base Address */\r
+                vuint32_t PWIDTH:1;     /* Parameter Width */\r
+                vuint32_t PARAM0:7;     /* Channel Parameter 0 */\r
+                vuint32_t WR:1;\r
+                vuint32_t PARAM1:7;     /* Channel Parameter 1 */\r
+            } B;\r
+        } CDCR;\r
+\r
+        uint32_t etpu_reserved1;\r
+\r
+        union {                 /* MISC Compare Register */\r
+            vuint32_t R;\r
+        } MISCCMPR;\r
+\r
+        union {                 /* SCM off-range Date Register */\r
+            vuint32_t R;\r
+        } SCMOFFDATAR;\r
+\r
+        union {                 /* ETPU_A Configuration Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t FEND:1;       /* Force END */\r
+                vuint32_t MDIS:1;       /* Low power Stop */\r
+                  vuint32_t:1;\r
+                vuint32_t STF:1;        /* Stop Flag */\r
+                  vuint32_t:4;\r
+                vuint32_t HLTF:1;       /* Halt Mode Flag */\r
+                  vuint32_t:4;\r
+                vuint32_t FPSCK:3;      /* Filter Prescaler Clock Control */\r
+                vuint32_t CDFC:2;\r
+                  vuint32_t:9;\r
+                vuint32_t ETB:5;        /* Entry Table Base */\r
+            } B;\r
+        } ECR_A;\r
+        uint32_t etpu_reserved3;        /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved4;\r
+\r
+        union {                 /* ETPU_A Timebase Configuration Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TCR2CTL:3;    /* TCR2 Clock/Gate Control */\r
+                vuint32_t TCRCF:2;      /* TCRCLK Signal Filter Control */\r
+                  vuint32_t:1;\r
+                vuint32_t AM:1; /* Angle Mode */\r
+                  vuint32_t:3;\r
+                vuint32_t TCR2P:6;      /* TCR2 Prescaler Control */\r
+                vuint32_t TCR1CTL:2;    /* TCR1 Clock/Gate Control */\r
+                  vuint32_t:6;\r
+                vuint32_t TCR1P:8;      /* TCR1 Prescaler Control */\r
+            } B;\r
+        } TBCR_A;\r
+\r
+        union {                 /* ETPU_A TCR1 Visibility Register */\r
+            vuint32_t R;\r
+        } TB1R_A;\r
+\r
+        union {                 /* ETPU_A TCR2 Visibility Register */\r
+            vuint32_t R;\r
+        } TB2R_A;\r
+\r
+        union {                 /* ETPU_A STAC Configuration Register */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t REN1:1;       /* Resource Enable TCR1 */\r
+                vuint32_t RSC1:1;       /* Resource Control TCR1 */\r
+                  vuint32_t:2;\r
+                vuint32_t SERVER_ID1:4;\r
+                  vuint32_t:4;\r
+                vuint32_t SRV1:4;       /* Resource Server Slot */\r
+                vuint32_t REN2:1;       /* Resource Enable TCR2 */\r
+                vuint32_t RSC2:1;       /* Resource Control TCR2 */\r
+                  vuint32_t:2;\r
+                vuint32_t SERVER_ID2:4;\r
+                  vuint32_t:4;\r
+                vuint32_t SRV2:4;       /* Resource Server Slot */\r
+            } B;\r
+        } REDCR_A;\r
+\r
+        uint32_t etpu_reserved5[4];\r
+        uint32_t etpu_reserved6[4];     /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved7[108];\r
+\r
+/*****************************Status and Control Registers**************************/\r
+\r
+        union {                 /* ETPU_A Channel Interrut Status */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CIS31:1;      /* Channel 31 Interrut Status */\r
+                vuint32_t CIS30:1;      /* Channel 30 Interrut Status */\r
+                vuint32_t CIS29:1;      /* Channel 29 Interrut Status */\r
+                vuint32_t CIS28:1;      /* Channel 28 Interrut Status */\r
+                vuint32_t CIS27:1;      /* Channel 27 Interrut Status */\r
+                vuint32_t CIS26:1;      /* Channel 26 Interrut Status */\r
+                vuint32_t CIS25:1;      /* Channel 25 Interrut Status */\r
+                vuint32_t CIS24:1;      /* Channel 24 Interrut Status */\r
+                vuint32_t CIS23:1;      /* Channel 23 Interrut Status */\r
+                vuint32_t CIS22:1;      /* Channel 22 Interrut Status */\r
+                vuint32_t CIS21:1;      /* Channel 21 Interrut Status */\r
+                vuint32_t CIS20:1;      /* Channel 20 Interrut Status */\r
+                vuint32_t CIS19:1;      /* Channel 19 Interrut Status */\r
+                vuint32_t CIS18:1;      /* Channel 18 Interrut Status */\r
+                vuint32_t CIS17:1;      /* Channel 17 Interrut Status */\r
+                vuint32_t CIS16:1;      /* Channel 16 Interrut Status */\r
+                vuint32_t CIS15:1;      /* Channel 15 Interrut Status */\r
+                vuint32_t CIS14:1;      /* Channel 14 Interrut Status */\r
+                vuint32_t CIS13:1;      /* Channel 13 Interrut Status */\r
+                vuint32_t CIS12:1;      /* Channel 12 Interrut Status */\r
+                vuint32_t CIS11:1;      /* Channel 11 Interrut Status */\r
+                vuint32_t CIS10:1;      /* Channel 10 Interrut Status */\r
+                vuint32_t CIS9:1;       /* Channel 9 Interrut Status */\r
+                vuint32_t CIS8:1;       /* Channel 8 Interrut Status */\r
+                vuint32_t CIS7:1;       /* Channel 7 Interrut Status */\r
+                vuint32_t CIS6:1;       /* Channel 6 Interrut Status */\r
+                vuint32_t CIS5:1;       /* Channel 5 Interrut Status */\r
+                vuint32_t CIS4:1;       /* Channel 4 Interrut Status */\r
+                vuint32_t CIS3:1;       /* Channel 3 Interrut Status */\r
+                vuint32_t CIS2:1;       /* Channel 2 Interrut Status */\r
+                vuint32_t CIS1:1;       /* Channel 1 Interrut Status */\r
+                vuint32_t CIS0:1;       /* Channel 0 Interrut Status */\r
+            } B;\r
+        } CISR_A;\r
+        uint32_t etpu_reserved8;        /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved9[2];\r
+\r
+        union {                 /* ETPU_A Data Transfer Request Status */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t DTRS31:1;     /* Channel 31 Data Transfer Request Status */\r
+                vuint32_t DTRS30:1;     /* Channel 30 Data Transfer Request Status */\r
+                vuint32_t DTRS29:1;     /* Channel 29 Data Transfer Request Status */\r
+                vuint32_t DTRS28:1;     /* Channel 28 Data Transfer Request Status */\r
+                vuint32_t DTRS27:1;     /* Channel 27 Data Transfer Request Status */\r
+                vuint32_t DTRS26:1;     /* Channel 26 Data Transfer Request Status */\r
+                vuint32_t DTRS25:1;     /* Channel 25 Data Transfer Request Status */\r
+                vuint32_t DTRS24:1;     /* Channel 24 Data Transfer Request Status */\r
+                vuint32_t DTRS23:1;     /* Channel 23 Data Transfer Request Status */\r
+                vuint32_t DTRS22:1;     /* Channel 22 Data Transfer Request Status */\r
+                vuint32_t DTRS21:1;     /* Channel 21 Data Transfer Request Status */\r
+                vuint32_t DTRS20:1;     /* Channel 20 Data Transfer Request Status */\r
+                vuint32_t DTRS19:1;     /* Channel 19 Data Transfer Request Status */\r
+                vuint32_t DTRS18:1;     /* Channel 18 Data Transfer Request Status */\r
+                vuint32_t DTRS17:1;     /* Channel 17 Data Transfer Request Status */\r
+                vuint32_t DTRS16:1;     /* Channel 16 Data Transfer Request Status */\r
+                vuint32_t DTRS15:1;     /* Channel 15 Data Transfer Request Status */\r
+                vuint32_t DTRS14:1;     /* Channel 14 Data Transfer Request Status */\r
+                vuint32_t DTRS13:1;     /* Channel 13 Data Transfer Request Status */\r
+                vuint32_t DTRS12:1;     /* Channel 12 Data Transfer Request Status */\r
+                vuint32_t DTRS11:1;     /* Channel 11 Data Transfer Request Status */\r
+                vuint32_t DTRS10:1;     /* Channel 10 Data Transfer Request Status */\r
+                vuint32_t DTRS9:1;      /* Channel 9 Data Transfer Request Status */\r
+                vuint32_t DTRS8:1;      /* Channel 8 Data Transfer Request Status */\r
+                vuint32_t DTRS7:1;      /* Channel 7 Data Transfer Request Status */\r
+                vuint32_t DTRS6:1;      /* Channel 6 Data Transfer Request Status */\r
+                vuint32_t DTRS5:1;      /* Channel 5 Data Transfer Request Status */\r
+                vuint32_t DTRS4:1;      /* Channel 4 Data Transfer Request Status */\r
+                vuint32_t DTRS3:1;      /* Channel 3 Data Transfer Request Status */\r
+                vuint32_t DTRS2:1;      /* Channel 2 Data Transfer Request Status */\r
+                vuint32_t DTRS1:1;      /* Channel 1 Data Transfer Request Status */\r
+                vuint32_t DTRS0:1;      /* Channel 0 Data Transfer Request Status */\r
+            } B;\r
+        } CDTRSR_A;\r
+        uint32_t etpu_reserved10;       /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved11[2];\r
+\r
+        union {                 /* ETPU_A Interruput Overflow Status */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CIOS31:1;     /* Channel 31 Interruput Overflow Status */\r
+                vuint32_t CIOS30:1;     /* Channel 30 Interruput Overflow Status */\r
+                vuint32_t CIOS29:1;     /* Channel 29 Interruput Overflow Status */\r
+                vuint32_t CIOS28:1;     /* Channel 28 Interruput Overflow Status */\r
+                vuint32_t CIOS27:1;     /* Channel 27 Interruput Overflow Status */\r
+                vuint32_t CIOS26:1;     /* Channel 26 Interruput Overflow Status */\r
+                vuint32_t CIOS25:1;     /* Channel 25 Interruput Overflow Status */\r
+                vuint32_t CIOS24:1;     /* Channel 24 Interruput Overflow Status */\r
+                vuint32_t CIOS23:1;     /* Channel 23 Interruput Overflow Status */\r
+                vuint32_t CIOS22:1;     /* Channel 22 Interruput Overflow Status */\r
+                vuint32_t CIOS21:1;     /* Channel 21 Interruput Overflow Status */\r
+                vuint32_t CIOS20:1;     /* Channel 20 Interruput Overflow Status */\r
+                vuint32_t CIOS19:1;     /* Channel 19 Interruput Overflow Status */\r
+                vuint32_t CIOS18:1;     /* Channel 18 Interruput Overflow Status */\r
+                vuint32_t CIOS17:1;     /* Channel 17 Interruput Overflow Status */\r
+                vuint32_t CIOS16:1;     /* Channel 16 Interruput Overflow Status */\r
+                vuint32_t CIOS15:1;     /* Channel 15 Interruput Overflow Status */\r
+                vuint32_t CIOS14:1;     /* Channel 14 Interruput Overflow Status */\r
+                vuint32_t CIOS13:1;     /* Channel 13 Interruput Overflow Status */\r
+                vuint32_t CIOS12:1;     /* Channel 12 Interruput Overflow Status */\r
+                vuint32_t CIOS11:1;     /* Channel 11 Interruput Overflow Status */\r
+                vuint32_t CIOS10:1;     /* Channel 10 Interruput Overflow Status */\r
+                vuint32_t CIOS9:1;      /* Channel 9 Interruput Overflow Status */\r
+                vuint32_t CIOS8:1;      /* Channel 8 Interruput Overflow Status */\r
+                vuint32_t CIOS7:1;      /* Channel 7 Interruput Overflow Status */\r
+                vuint32_t CIOS6:1;      /* Channel 6 Interruput Overflow Status */\r
+                vuint32_t CIOS5:1;      /* Channel 5 Interruput Overflow Status */\r
+                vuint32_t CIOS4:1;      /* Channel 4 Interruput Overflow Status */\r
+                vuint32_t CIOS3:1;      /* Channel 3 Interruput Overflow Status */\r
+                vuint32_t CIOS2:1;      /* Channel 2 Interruput Overflow Status */\r
+                vuint32_t CIOS1:1;      /* Channel 1 Interruput Overflow Status */\r
+                vuint32_t CIOS0:1;      /* Channel 0 Interruput Overflow Status */\r
+            } B;\r
+        } CIOSR_A;\r
+        uint32_t etpu_reserved12;       /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved13[2];\r
+\r
+        union {                 /* ETPU_A Data Transfer Overflow Status */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t DTROS31:1;    /* Channel 31 Data Transfer Overflow Status */\r
+                vuint32_t DTROS30:1;    /* Channel 30 Data Transfer Overflow Status */\r
+                vuint32_t DTROS29:1;    /* Channel 29 Data Transfer Overflow Status */\r
+                vuint32_t DTROS28:1;    /* Channel 28 Data Transfer Overflow Status */\r
+                vuint32_t DTROS27:1;    /* Channel 27 Data Transfer Overflow Status */\r
+                vuint32_t DTROS26:1;    /* Channel 26 Data Transfer Overflow Status */\r
+                vuint32_t DTROS25:1;    /* Channel 25 Data Transfer Overflow Status */\r
+                vuint32_t DTROS24:1;    /* Channel 24 Data Transfer Overflow Status */\r
+                vuint32_t DTROS23:1;    /* Channel 23 Data Transfer Overflow Status */\r
+                vuint32_t DTROS22:1;    /* Channel 22 Data Transfer Overflow Status */\r
+                vuint32_t DTROS21:1;    /* Channel 21 Data Transfer Overflow Status */\r
+                vuint32_t DTROS20:1;    /* Channel 20 Data Transfer Overflow Status */\r
+                vuint32_t DTROS19:1;    /* Channel 19 Data Transfer Overflow Status */\r
+                vuint32_t DTROS18:1;    /* Channel 18 Data Transfer Overflow Status */\r
+                vuint32_t DTROS17:1;    /* Channel 17 Data Transfer Overflow Status */\r
+                vuint32_t DTROS16:1;    /* Channel 16 Data Transfer Overflow Status */\r
+                vuint32_t DTROS15:1;    /* Channel 15 Data Transfer Overflow Status */\r
+                vuint32_t DTROS14:1;    /* Channel 14 Data Transfer Overflow Status */\r
+                vuint32_t DTROS13:1;    /* Channel 13 Data Transfer Overflow Status */\r
+                vuint32_t DTROS12:1;    /* Channel 12 Data Transfer Overflow Status */\r
+                vuint32_t DTROS11:1;    /* Channel 11 Data Transfer Overflow Status */\r
+                vuint32_t DTROS10:1;    /* Channel 10 Data Transfer Overflow Status */\r
+                vuint32_t DTROS9:1;     /* Channel 9 Data Transfer Overflow Status */\r
+                vuint32_t DTROS8:1;     /* Channel 8 Data Transfer Overflow Status */\r
+                vuint32_t DTROS7:1;     /* Channel 7 Data Transfer Overflow Status */\r
+                vuint32_t DTROS6:1;     /* Channel 6 Data Transfer Overflow Status */\r
+                vuint32_t DTROS5:1;     /* Channel 5 Data Transfer Overflow Status */\r
+                vuint32_t DTROS4:1;     /* Channel 4 Data Transfer Overflow Status */\r
+                vuint32_t DTROS3:1;     /* Channel 3 Data Transfer Overflow Status */\r
+                vuint32_t DTROS2:1;     /* Channel 2 Data Transfer Overflow Status */\r
+                vuint32_t DTROS1:1;     /* Channel 1 Data Transfer Overflow Status */\r
+                vuint32_t DTROS0:1;     /* Channel 0 Data Transfer Overflow Status */\r
+            } B;\r
+        } CDTROSR_A;\r
+        uint32_t etpu_reserved14;       /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved15[2];\r
+\r
+        union {                 /* ETPU_A Channel Interruput Enable */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CIE31:1;      /* Channel 31 Interruput Enable */\r
+                vuint32_t CIE30:1;      /* Channel 30 Interruput Enable */\r
+                vuint32_t CIE29:1;      /* Channel 29 Interruput Enable */\r
+                vuint32_t CIE28:1;      /* Channel 28 Interruput Enable */\r
+                vuint32_t CIE27:1;      /* Channel 27 Interruput Enable */\r
+                vuint32_t CIE26:1;      /* Channel 26 Interruput Enable */\r
+                vuint32_t CIE25:1;      /* Channel 25 Interruput Enable */\r
+                vuint32_t CIE24:1;      /* Channel 24 Interruput Enable */\r
+                vuint32_t CIE23:1;      /* Channel 23 Interruput Enable */\r
+                vuint32_t CIE22:1;      /* Channel 22 Interruput Enable */\r
+                vuint32_t CIE21:1;      /* Channel 21 Interruput Enable */\r
+                vuint32_t CIE20:1;      /* Channel 20 Interruput Enable */\r
+                vuint32_t CIE19:1;      /* Channel 19 Interruput Enable */\r
+                vuint32_t CIE18:1;      /* Channel 18 Interruput Enable */\r
+                vuint32_t CIE17:1;      /* Channel 17 Interruput Enable */\r
+                vuint32_t CIE16:1;      /* Channel 16 Interruput Enable */\r
+                vuint32_t CIE15:1;      /* Channel 15 Interruput Enable */\r
+                vuint32_t CIE14:1;      /* Channel 14 Interruput Enable */\r
+                vuint32_t CIE13:1;      /* Channel 13 Interruput Enable */\r
+                vuint32_t CIE12:1;      /* Channel 12 Interruput Enable */\r
+                vuint32_t CIE11:1;      /* Channel 11 Interruput Enable */\r
+                vuint32_t CIE10:1;      /* Channel 10 Interruput Enable */\r
+                vuint32_t CIE9:1;       /* Channel 9 Interruput Enable */\r
+                vuint32_t CIE8:1;       /* Channel 8 Interruput Enable */\r
+                vuint32_t CIE7:1;       /* Channel 7 Interruput Enable */\r
+                vuint32_t CIE6:1;       /* Channel 6 Interruput Enable */\r
+                vuint32_t CIE5:1;       /* Channel 5 Interruput Enable */\r
+                vuint32_t CIE4:1;       /* Channel 4 Interruput Enable */\r
+                vuint32_t CIE3:1;       /* Channel 3 Interruput Enable */\r
+                vuint32_t CIE2:1;       /* Channel 2 Interruput Enable */\r
+                vuint32_t CIE1:1;       /* Channel 1 Interruput Enable */\r
+                vuint32_t CIE0:1;       /* Channel 0 Interruput Enable */\r
+            } B;\r
+        } CIER_A;\r
+        uint32_t etpu_reserved16;       /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved17[2];\r
+\r
+        union {                 /* ETPU_A Channel Data Transfer Request Enable */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t DTRE31:1;     /* Channel 31 Data Transfer Request Enable */\r
+                vuint32_t DTRE30:1;     /* Channel 30 Data Transfer Request Enable */\r
+                vuint32_t DTRE29:1;     /* Channel 29 Data Transfer Request Enable */\r
+                vuint32_t DTRE28:1;     /* Channel 28 Data Transfer Request Enable */\r
+                vuint32_t DTRE27:1;     /* Channel 27 Data Transfer Request Enable */\r
+                vuint32_t DTRE26:1;     /* Channel 26 Data Transfer Request Enable */\r
+                vuint32_t DTRE25:1;     /* Channel 25 Data Transfer Request Enable */\r
+                vuint32_t DTRE24:1;     /* Channel 24 Data Transfer Request Enable */\r
+                vuint32_t DTRE23:1;     /* Channel 23 Data Transfer Request Enable */\r
+                vuint32_t DTRE22:1;     /* Channel 22 Data Transfer Request Enable */\r
+                vuint32_t DTRE21:1;     /* Channel 21 Data Transfer Request Enable */\r
+                vuint32_t DTRE20:1;     /* Channel 20 Data Transfer Request Enable */\r
+                vuint32_t DTRE19:1;     /* Channel 19 Data Transfer Request Enable */\r
+                vuint32_t DTRE18:1;     /* Channel 18 Data Transfer Request Enable */\r
+                vuint32_t DTRE17:1;     /* Channel 17 Data Transfer Request Enable */\r
+                vuint32_t DTRE16:1;     /* Channel 16 Data Transfer Request Enable */\r
+                vuint32_t DTRE15:1;     /* Channel 15 Data Transfer Request Enable */\r
+                vuint32_t DTRE14:1;     /* Channel 14 Data Transfer Request Enable */\r
+                vuint32_t DTRE13:1;     /* Channel 13 Data Transfer Request Enable */\r
+                vuint32_t DTRE12:1;     /* Channel 12 Data Transfer Request Enable */\r
+                vuint32_t DTRE11:1;     /* Channel 11 Data Transfer Request Enable */\r
+                vuint32_t DTRE10:1;     /* Channel 10 Data Transfer Request Enable */\r
+                vuint32_t DTRE9:1;      /* Channel 9 Data Transfer Request Enable */\r
+                vuint32_t DTRE8:1;      /* Channel 8 Data Transfer Request Enable */\r
+                vuint32_t DTRE7:1;      /* Channel 7 Data Transfer Request Enable */\r
+                vuint32_t DTRE6:1;      /* Channel 6 Data Transfer Request Enable */\r
+                vuint32_t DTRE5:1;      /* Channel 5 Data Transfer Request Enable */\r
+                vuint32_t DTRE4:1;      /* Channel 4 Data Transfer Request Enable */\r
+                vuint32_t DTRE3:1;      /* Channel 3 Data Transfer Request Enable */\r
+                vuint32_t DTRE2:1;      /* Channel 2 Data Transfer Request Enable */\r
+                vuint32_t DTRE1:1;      /* Channel 1 Data Transfer Request Enable */\r
+                vuint32_t DTRE0:1;      /* Channel 0 Data Transfer Request Enable */\r
+            } B;\r
+        } CDTRER_A;\r
+        uint32_t etpu_reserved19;       /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved20[10];\r
+        union {                 /* ETPU_A Channel Pending Service Status */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t SR31:1;       /* Channel 31 Pending Service Status */\r
+                vuint32_t SR30:1;       /* Channel 30 Pending Service Status */\r
+                vuint32_t SR29:1;       /* Channel 29 Pending Service Status */\r
+                vuint32_t SR28:1;       /* Channel 28 Pending Service Status */\r
+                vuint32_t SR27:1;       /* Channel 27 Pending Service Status */\r
+                vuint32_t SR26:1;       /* Channel 26 Pending Service Status */\r
+                vuint32_t SR25:1;       /* Channel 25 Pending Service Status */\r
+                vuint32_t SR24:1;       /* Channel 24 Pending Service Status */\r
+                vuint32_t SR23:1;       /* Channel 23 Pending Service Status */\r
+                vuint32_t SR22:1;       /* Channel 22 Pending Service Status */\r
+                vuint32_t SR21:1;       /* Channel 21 Pending Service Status */\r
+                vuint32_t SR20:1;       /* Channel 20 Pending Service Status */\r
+                vuint32_t SR19:1;       /* Channel 19 Pending Service Status */\r
+                vuint32_t SR18:1;       /* Channel 18 Pending Service Status */\r
+                vuint32_t SR17:1;       /* Channel 17 Pending Service Status */\r
+                vuint32_t SR16:1;       /* Channel 16 Pending Service Status */\r
+                vuint32_t SR15:1;       /* Channel 15 Pending Service Status */\r
+                vuint32_t SR14:1;       /* Channel 14 Pending Service Status */\r
+                vuint32_t SR13:1;       /* Channel 13 Pending Service Status */\r
+                vuint32_t SR12:1;       /* Channel 12 Pending Service Status */\r
+                vuint32_t SR11:1;       /* Channel 11 Pending Service Status */\r
+                vuint32_t SR10:1;       /* Channel 10 Pending Service Status */\r
+                vuint32_t SR9:1;        /* Channel 9 Pending Service Status */\r
+                vuint32_t SR8:1;        /* Channel 8 Pending Service Status */\r
+                vuint32_t SR7:1;        /* Channel 7 Pending Service Status */\r
+                vuint32_t SR6:1;        /* Channel 6 Pending Service Status */\r
+                vuint32_t SR5:1;        /* Channel 5 Pending Service Status */\r
+                vuint32_t SR4:1;        /* Channel 4 Pending Service Status */\r
+                vuint32_t SR3:1;        /* Channel 3 Pending Service Status */\r
+                vuint32_t SR2:1;        /* Channel 2 Pending Service Status */\r
+                vuint32_t SR1:1;        /* Channel 1 Pending Service Status */\r
+                vuint32_t SR0:1;        /* Channel 0 Pending Service Status */\r
+            } B;\r
+        } CPSSR_A;\r
+        uint32_t etpu_reserved22;       /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved20a[2];\r
+\r
+        union {                 /* ETPU_A Channel Service Status */\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t SS31:1;       /* Channel 31 Service Status */\r
+                vuint32_t SS30:1;       /* Channel 30 Service Status */\r
+                vuint32_t SS29:1;       /* Channel 29 Service Status */\r
+                vuint32_t SS28:1;       /* Channel 28 Service Status */\r
+                vuint32_t SS27:1;       /* Channel 27 Service Status */\r
+                vuint32_t SS26:1;       /* Channel 26 Service Status */\r
+                vuint32_t SS25:1;       /* Channel 25 Service Status */\r
+                vuint32_t SS24:1;       /* Channel 24 Service Status */\r
+                vuint32_t SS23:1;       /* Channel 23 Service Status */\r
+                vuint32_t SS22:1;       /* Channel 22 Service Status */\r
+                vuint32_t SS21:1;       /* Channel 21 Service Status */\r
+                vuint32_t SS20:1;       /* Channel 20 Service Status */\r
+                vuint32_t SS19:1;       /* Channel 19 Service Status */\r
+                vuint32_t SS18:1;       /* Channel 18 Service Status */\r
+                vuint32_t SS17:1;       /* Channel 17 Service Status */\r
+                vuint32_t SS16:1;       /* Channel 16 Service Status */\r
+                vuint32_t SS15:1;       /* Channel 15 Service Status */\r
+                vuint32_t SS14:1;       /* Channel 14 Service Status */\r
+                vuint32_t SS13:1;       /* Channel 13 Service Status */\r
+                vuint32_t SS12:1;       /* Channel 12 Service Status */\r
+                vuint32_t SS11:1;       /* Channel 11 Service Status */\r
+                vuint32_t SS10:1;       /* Channel 10 Service Status */\r
+                vuint32_t SS9:1;        /* Channel 9 Service Status */\r
+                vuint32_t SS8:1;        /* Channel 8 Service Status */\r
+                vuint32_t SS7:1;        /* Channel 7 Service Status */\r
+                vuint32_t SS6:1;        /* Channel 6 Service Status */\r
+                vuint32_t SS5:1;        /* Channel 5 Service Status */\r
+                vuint32_t SS4:1;        /* Channel 4 Service Status */\r
+                vuint32_t SS3:1;        /* Channel 3 Service Status */\r
+                vuint32_t SS2:1;        /* Channel 2 Service Status */\r
+                vuint32_t SS1:1;        /* Channel 1 Service Status */\r
+                vuint32_t SS0:1;        /* Channel 0 Service Status */\r
+            } B;\r
+        } CSSR_A;\r
+        uint32_t etpu_reserved22a;      /* For single ETPU implementations */\r
+\r
+        uint32_t etpu_reserved23[90];\r
+\r
+/*****************************Channels********************************/\r
+\r
+        struct {\r
+            union {\r
+                vuint32_t R;    /* Channel Configuration Register */\r
+                struct {\r
+                    vuint32_t CIE:1;    /* Channel Interruput Enable */\r
+                    vuint32_t DTRE:1;   /* Data Transfer Request Enable */\r
+                    vuint32_t CPR:2;    /* Channel Priority */\r
+                      vuint32_t:3;\r
+                    vuint32_t ETCS:1;   /* Entry Table Condition Select */\r
+                      vuint32_t:3;\r
+                    vuint32_t CFS:5;    /* Channel Function Select */\r
+                    vuint32_t ODIS:1;   /* Output disable */\r
+                    vuint32_t OPOL:1;   /* output polarity */\r
+                      vuint32_t:3;\r
+                    vuint32_t CPBA:11;  /* Channel Parameter Base Address */\r
+                } B;\r
+            } CR;\r
+            union {\r
+                vuint32_t R;    /* Channel Status Control Register */\r
+                struct {\r
+                    vuint32_t CIS:1;    /* Channel Interruput Status */\r
+                    vuint32_t CIOS:1;   /* Channel Interruput Overflow Status */\r
+                      vuint32_t:6;\r
+                    vuint32_t DTRS:1;   /* Data Transfer Status */\r
+                    vuint32_t DTROS:1;  /* Data Transfer Overflow Status */\r
+                      vuint32_t:6;\r
+                    vuint32_t IPS:1;    /* Input Pin State */\r
+                    vuint32_t OPS:1;    /* Output Pin State */\r
+                    vuint32_t OBE:1;    /* Output Buffer Enable */\r
+                      vuint32_t:11;\r
+                    vuint32_t FM1:1;    /* Function mode */\r
+                    vuint32_t FM0:1;    /* Function mode */\r
+                } B;\r
+            } SCR;\r
+            union {\r
+                vuint32_t R;    /* Channel Host Service Request Register */\r
+                struct {\r
+                    vuint32_t:29;       /* Host Service Request */\r
+                    vuint32_t HSR:3;\r
+                } B;\r
+            } HSRR;\r
+            uint32_t etpu_reserved23;\r
+        } CHAN[127];\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : XBAR CrossBar                          */\r
+/****************************************************************************/\r
+    struct XBAR_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:1;\r
+                vuint32_t MSTR4:3;      /* Z3 core data and Nexus */\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR2:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR1:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR0:3;\r
+            } B;\r
+        } MPR0;                 /* Master Priority Register for Slave Port 0 */\r
+\r
+        uint32_t xbar_reserved1[3];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t RO:1;\r
+                  vuint32_t:21;\r
+                vuint32_t ARB:2;\r
+                  vuint32_t:2;\r
+                vuint32_t PCTL:2;\r
+                  vuint32_t:1;\r
+                vuint32_t PARK:3;\r
+            } B;\r
+        } SGPCR0;               /* General Purpose Control Register for Slave Port 0 */\r
+\r
+        uint32_t xbar_reserved2[59];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:1;\r
+                vuint32_t MSTR4:3;      /* Z3 core data and Nexus */\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR2:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR1:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR0:3;\r
+            } B;\r
+        } MPR1;                 /* Master Priority Register for Slave Port 1 */\r
+\r
+        uint32_t xbar_reserved3[3];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t RO:1;\r
+                  vuint32_t:21;\r
+                vuint32_t ARB:2;\r
+                  vuint32_t:2;\r
+                vuint32_t PCTL:2;\r
+                  vuint32_t:1;\r
+                vuint32_t PARK:3;\r
+            } B;\r
+        } SGPCR1;               /* General Purpose Control Register for Slave Port 1 */\r
+\r
+        uint32_t xbar_reserved4[123];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:1;\r
+                vuint32_t MSTR4:3;      /* Z3 core data and Nexus */\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR2:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR1:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR0:3;\r
+            } B;\r
+        } MPR3;                 /* Master Priority Register for Slave Port 3 */\r
+\r
+        uint32_t xbar_reserved5[3];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t RO:1;\r
+                  vuint32_t:21;\r
+                vuint32_t ARB:2;\r
+                  vuint32_t:2;\r
+                vuint32_t PCTL:2;\r
+                  vuint32_t:1;\r
+                vuint32_t PARK:3;\r
+            } B;\r
+        } SGPCR3;               /* General Purpose Control Register for Slave Port 3 */\r
+        uint32_t xbar_reserved6[187];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:1;\r
+                vuint32_t MSTR4:3;      /* Z3 core data and Nexus */\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR2:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR1:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR0:3;\r
+            } B;\r
+        } MPR6;                 /* Master Priority Register for Slave Port 6 */\r
+\r
+        uint32_t xbar_reserved7[3];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t RO:1;\r
+                  vuint32_t:21;\r
+                vuint32_t ARB:2;\r
+                  vuint32_t:2;\r
+                vuint32_t PCTL:2;\r
+                  vuint32_t:1;\r
+                vuint32_t PARK:3;\r
+            } B;\r
+        } SGPCR6;               /* General Purpose Control Register for Slave Port 6 */\r
+\r
+        uint32_t xbar_reserved8[59];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:4;\r
+\r
+                vuint32_t:1;\r
+                vuint32_t MSTR4:3;      /* Z3 core data and Nexus */\r
+\r
+                  vuint32_t:4;\r
+\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR2:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR1:3;\r
+                  vuint32_t:1;\r
+                vuint32_t MSTR0:3;\r
+            } B;\r
+        } MPR7;                 /* Master Priority Register for Slave Port 7 */\r
+\r
+        uint32_t xbar_reserved9[3];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t RO:1;\r
+                  vuint32_t:21;\r
+                vuint32_t ARB:2;\r
+                  vuint32_t:2;\r
+                vuint32_t PCTL:2;\r
+                  vuint32_t:1;\r
+                vuint32_t PARK:3;\r
+            } B;\r
+        } SGPCR7;               /* General Purpose Control Register for Slave Port 7 */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : ECSM                                        */\r
+/****************************************************************************/\r
+    struct ECSM_tag {\r
+\r
+        uint32_t ecsm_reserved1[5];\r
+\r
+        uint16_t ecsm_reserved2;\r
+\r
+        union {\r
+            vuint16_t R;\r
+        } SWTCR;                //Software Watchdog Timer Control\r
+\r
+        uint8_t ecsm_reserved3[3];\r
+\r
+        union {\r
+            vuint8_t R;\r
+        } SWTSR;                //SWT Service Register\r
+\r
+        uint8_t ecsm_reserved4[3];\r
+\r
+        union {\r
+            vuint8_t R;\r
+        } SWTIR;                //SWT Interrupt Register\r
+\r
+        uint32_t ecsm_reserved5a[1];\r
+        uint32_t ecsm_reserved5b[1];\r
+\r
+        uint32_t ecsm_reserved5c[6];\r
+\r
+        uint8_t ecsm_reserved6[3];\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:6;\r
+                vuint8_t ERNCR:1;\r
+                vuint8_t EFNCR:1;\r
+            } B;\r
+        } ECR;                  //ECC Configuration Register\r
+\r
+        uint8_t mcm_reserved8[3];\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:6;\r
+                vuint8_t RNCE:1;\r
+                vuint8_t FNCE:1;\r
+            } B;\r
+        } ESR;                  //ECC Status Register\r
+\r
+        uint16_t ecsm_reserved9;\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t:6;\r
+                vuint16_t FRCNCI:1;\r
+                vuint16_t FR1NCI:1;\r
+                  vuint16_t:1;\r
+                vuint16_t ERRBIT:7;\r
+            } B;\r
+        } EEGR;                 //ECC Error Generation Register\r
+\r
+        uint32_t ecsm_reserved10;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t FEAR:32;\r
+            } B;\r
+        } FEAR;                 //Flash ECC Address Register\r
+\r
+        uint16_t ecsm_reserved11;\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:4;\r
+                vuint8_t FEMR:4;\r
+            } B;\r
+        } FEMR;                 //Flash ECC Master Register\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t WRITE:1;\r
+                vuint8_t SIZE:3;\r
+                vuint8_t PROT0:1;\r
+                vuint8_t PROT1:1;\r
+                vuint8_t PROT2:1;\r
+                vuint8_t PROT3:1;\r
+            } B;\r
+        } FEAT;                 //Flash ECC Attributes Register\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t FEDH:32;\r
+            } B;\r
+        } FEDRH;                //Flash ECC Data High Register\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t FEDL:32;\r
+            } B;\r
+        } FEDRL;                //Flash ECC Data Low Register\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t REAR:32;\r
+            } B;\r
+        } REAR;                 //RAM ECC Address\r
+\r
+        uint8_t ecsm_reserved12[2];\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:4;\r
+                vuint8_t REMR:4;\r
+            } B;\r
+        } REMR;                 //RAM ECC Master\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t WRITE:1;\r
+                vuint8_t SIZE:3;\r
+                vuint8_t PROT0:1;\r
+                vuint8_t PROT1:1;\r
+                vuint8_t PROT2:1;\r
+                vuint8_t PROT3:1;\r
+            } B;\r
+        } REAT;                 // RAM ECC Attributes Register\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t REDH:32;\r
+            } B;\r
+        } REDRH;                //RAM ECC Data High Register\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t REDL:32;\r
+            } B;\r
+        } REDRL;                //RAMECC Data Low Register\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : eDMA                                   */\r
+/****************************************************************************/\r
+    struct EDMA_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t GRP3PRI:2;\r
+                vuint32_t GRP2PRI:2;\r
+                vuint32_t GRP1PRI:2;\r
+                vuint32_t GRP0PRI:2;\r
+                  vuint32_t:4;\r
+                vuint32_t ERGA:1;\r
+                vuint32_t ERCA:1;\r
+                vuint32_t EDBG:1;\r
+                vuint32_t EBW:1;\r
+            } B;\r
+        } CR;                   /* Control Register */\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t VLD:1;\r
+                  vuint32_t:15;\r
+                vuint32_t GPE:1;\r
+                vuint32_t CPE:1;\r
+                vuint32_t ERRCHN:6;\r
+                vuint32_t SAE:1;\r
+                vuint32_t SOE:1;\r
+                vuint32_t DAE:1;\r
+                vuint32_t DOE:1;\r
+                vuint32_t NCE:1;\r
+                vuint32_t SGE:1;\r
+                vuint32_t SBE:1;\r
+                vuint32_t DBE:1;\r
+            } B;\r
+        } ESR;                  /* Error Status Register */\r
+        uint32_t edma_reserved_erqrh;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t ERQ31:1;\r
+                vuint32_t ERQ30:1;\r
+                vuint32_t ERQ29:1;\r
+                vuint32_t ERQ28:1;\r
+                vuint32_t ERQ27:1;\r
+                vuint32_t ERQ26:1;\r
+                vuint32_t ERQ25:1;\r
+                vuint32_t ERQ24:1;\r
+                vuint32_t ERQ23:1;\r
+                vuint32_t ERQ22:1;\r
+                vuint32_t ERQ21:1;\r
+                vuint32_t ERQ20:1;\r
+                vuint32_t ERQ19:1;\r
+                vuint32_t ERQ18:1;\r
+                vuint32_t ERQ17:1;\r
+                vuint32_t ERQ16:1;\r
+                vuint32_t ERQ15:1;\r
+                vuint32_t ERQ14:1;\r
+                vuint32_t ERQ13:1;\r
+                vuint32_t ERQ12:1;\r
+                vuint32_t ERQ11:1;\r
+                vuint32_t ERQ10:1;\r
+                vuint32_t ERQ09:1;\r
+                vuint32_t ERQ08:1;\r
+                vuint32_t ERQ07:1;\r
+                vuint32_t ERQ06:1;\r
+                vuint32_t ERQ05:1;\r
+                vuint32_t ERQ04:1;\r
+                vuint32_t ERQ03:1;\r
+                vuint32_t ERQ02:1;\r
+                vuint32_t ERQ01:1;\r
+                vuint32_t ERQ00:1;\r
+            } B;\r
+        } ERQRL;                /* DMA Enable Request Register Low */\r
+        uint32_t edma_reserved_eeirh;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t EEI31:1;\r
+                vuint32_t EEI30:1;\r
+                vuint32_t EEI29:1;\r
+                vuint32_t EEI28:1;\r
+                vuint32_t EEI27:1;\r
+                vuint32_t EEI26:1;\r
+                vuint32_t EEI25:1;\r
+                vuint32_t EEI24:1;\r
+                vuint32_t EEI23:1;\r
+                vuint32_t EEI22:1;\r
+                vuint32_t EEI21:1;\r
+                vuint32_t EEI20:1;\r
+                vuint32_t EEI19:1;\r
+                vuint32_t EEI18:1;\r
+                vuint32_t EEI17:1;\r
+                vuint32_t EEI16:1;\r
+                vuint32_t EEI15:1;\r
+                vuint32_t EEI14:1;\r
+                vuint32_t EEI13:1;\r
+                vuint32_t EEI12:1;\r
+                vuint32_t EEI11:1;\r
+                vuint32_t EEI10:1;\r
+                vuint32_t EEI09:1;\r
+                vuint32_t EEI08:1;\r
+                vuint32_t EEI07:1;\r
+                vuint32_t EEI06:1;\r
+                vuint32_t EEI05:1;\r
+                vuint32_t EEI04:1;\r
+                vuint32_t EEI03:1;\r
+                vuint32_t EEI02:1;\r
+                vuint32_t EEI01:1;\r
+                vuint32_t EEI00:1;\r
+            } B;\r
+        } EEIRL;                /* DMA Enable Error Interrupt Register Low */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } SERQR;                /* DMA Set Enable Request Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } CERQR;                /* DMA Clear Enable Request Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } SEEIR;                /* DMA Set Enable Error Interrupt Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } CEEIR;                /* DMA Clear Enable Error Interrupt Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } CIRQR;                /* DMA Clear Interrupt Request Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } CER;                  /* DMA Clear error Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } SSBR;                 /* Set Start Bit Register */\r
+        union {\r
+            vuint8_t R;\r
+            vuint8_t B;\r
+        } CDSBR;                /* Clear Done Status Bit Register */\r
+        uint32_t edma_reserved_irqrh;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t INT31:1;\r
+                vuint32_t INT30:1;\r
+                vuint32_t INT29:1;\r
+                vuint32_t INT28:1;\r
+                vuint32_t INT27:1;\r
+                vuint32_t INT26:1;\r
+                vuint32_t INT25:1;\r
+                vuint32_t INT24:1;\r
+                vuint32_t INT23:1;\r
+                vuint32_t INT22:1;\r
+                vuint32_t INT21:1;\r
+                vuint32_t INT20:1;\r
+                vuint32_t INT19:1;\r
+                vuint32_t INT18:1;\r
+                vuint32_t INT17:1;\r
+                vuint32_t INT16:1;\r
+                vuint32_t INT15:1;\r
+                vuint32_t INT14:1;\r
+                vuint32_t INT13:1;\r
+                vuint32_t INT12:1;\r
+                vuint32_t INT11:1;\r
+                vuint32_t INT10:1;\r
+                vuint32_t INT09:1;\r
+                vuint32_t INT08:1;\r
+                vuint32_t INT07:1;\r
+                vuint32_t INT06:1;\r
+                vuint32_t INT05:1;\r
+                vuint32_t INT04:1;\r
+                vuint32_t INT03:1;\r
+                vuint32_t INT02:1;\r
+                vuint32_t INT01:1;\r
+                vuint32_t INT00:1;\r
+            } B;\r
+        } IRQRL;                /* DMA Interrupt Request Low */\r
+        uint32_t edma_reserved_erh;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t ERR31:1;\r
+                vuint32_t ERR30:1;\r
+                vuint32_t ERR29:1;\r
+                vuint32_t ERR28:1;\r
+                vuint32_t ERR27:1;\r
+                vuint32_t ERR26:1;\r
+                vuint32_t ERR25:1;\r
+                vuint32_t ERR24:1;\r
+                vuint32_t ERR23:1;\r
+                vuint32_t ERR22:1;\r
+                vuint32_t ERR21:1;\r
+                vuint32_t ERR20:1;\r
+                vuint32_t ERR19:1;\r
+                vuint32_t ERR18:1;\r
+                vuint32_t ERR17:1;\r
+                vuint32_t ERR16:1;\r
+                vuint32_t ERR15:1;\r
+                vuint32_t ERR14:1;\r
+                vuint32_t ERR13:1;\r
+                vuint32_t ERR12:1;\r
+                vuint32_t ERR11:1;\r
+                vuint32_t ERR10:1;\r
+                vuint32_t ERR09:1;\r
+                vuint32_t ERR08:1;\r
+                vuint32_t ERR07:1;\r
+                vuint32_t ERR06:1;\r
+                vuint32_t ERR05:1;\r
+                vuint32_t ERR04:1;\r
+                vuint32_t ERR03:1;\r
+                vuint32_t ERR02:1;\r
+                vuint32_t ERR01:1;\r
+                vuint32_t ERR00:1;\r
+            } B;\r
+        } ERL;                  /* DMA Error Low */\r
+        uint32_t edma_reserved1[52];\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t ECP:1;\r
+\r
+                  vuint8_t:1;\r
+                vuint8_t GRPPRI:2;\r
+                vuint8_t CHPRI:4;\r
+\r
+            } B;\r
+        } CPR[64];              /* Channel n Priority */\r
+\r
+        uint32_t edma_reserved2[944];\r
+\r
+/****************************************************************************/\r
+/*       DMA2 Transfer Control Descriptor                                   */\r
+/****************************************************************************/\r
+\r
+        struct tcd_t {          /*for "standard" format TCDs (when EDMA.TCD[x].CITER.E_LINK==BITER.E_LINK=0 && EDMA.EMLM=0 ) */\r
+            vuint32_t SADDR;    /* source address */\r
+\r
+            vuint16_t SMOD:5;   /* source address modulo */\r
+            vuint16_t SSIZE:3;  /* source transfer size */\r
+            vuint16_t DMOD:5;   /* destination address modulo */\r
+            vuint16_t DSIZE:3;  /* destination transfer size */\r
+            vint16_t SOFF;      /* signed source address offset */\r
+\r
+            vuint32_t NBYTES;   /* inner (\93minor\94) byte count */\r
+\r
+            vint32_t SLAST;     /* last destination address adjustment, or\r
+\r
+                                   scatter/gather address (if e_sg = 1) */\r
+            vuint32_t DADDR;    /* destination address */\r
+\r
+            vuint16_t CITERE_LINK:1;\r
+            vuint16_t CITER:15;\r
+\r
+            vint16_t DOFF;      /* signed destination address offset */\r
+\r
+            vint32_t DLAST_SGA;\r
+\r
+            vuint16_t BITERE_LINK:1;    /* beginning ("major") iteration count */\r
+            vuint16_t BITER:15;\r
+\r
+            vuint16_t BWC:2;    /* bandwidth control */\r
+            vuint16_t MAJORLINKCH:6;    /* enable channel-to-channel link */\r
+            vuint16_t DONE:1;   /* channel done */\r
+            vuint16_t ACTIVE:1; /* channel active */\r
+            vuint16_t MAJORE_LINK:1;    /* enable channel-to-channel link */\r
+            vuint16_t E_SG:1;   /* enable scatter/gather descriptor */\r
+            vuint16_t D_REQ:1;  /* disable ipd_req when done */\r
+            vuint16_t INT_HALF:1;       /* interrupt on citer = (biter >> 1) */\r
+            vuint16_t INT_MAJ:1;        /* interrupt on major loop completion */\r
+            vuint16_t START:1;  /* explicit channel start */\r
+        } TCD[64];              /* transfer_control_descriptor */\r
+\r
+    };\r
+\r
+    struct EDMA_TCD_alt1_tag {  /*for alternate format TCDs (when EDMA.TCD[x].CITER.E_LINK==BITER.E_LINK=1 ) */\r
+\r
+        struct tcd_alt1_t {\r
+            vuint32_t SADDR;    /* source address */\r
+\r
+            vuint16_t SMOD:5;   /* source address modulo */\r
+            vuint16_t SSIZE:3;  /* source transfer size */\r
+            vuint16_t DMOD:5;   /* destination address modulo */\r
+            vuint16_t DSIZE:3;  /* destination transfer size */\r
+            vint16_t SOFF;      /* signed source address offset */\r
+\r
+            vuint32_t NBYTES;   /* inner (\93minor\94) byte count */\r
+\r
+            vint32_t SLAST;     /* last destination address adjustment, or\r
+\r
+                                   scatter/gather address (if e_sg = 1) */\r
+            vuint32_t DADDR;    /* destination address */\r
+\r
+            vuint16_t CITERE_LINK:1;\r
+            vuint16_t CITERLINKCH:6;\r
+            vuint16_t CITER:9;\r
+\r
+            vint16_t DOFF;      /* signed destination address offset */\r
+\r
+            vint32_t DLAST_SGA;\r
+\r
+            vuint16_t BITERE_LINK:1;    /* beginning (\93major\94) iteration count */\r
+            vuint16_t BITERLINKCH:6;\r
+            vuint16_t BITER:9;\r
+\r
+            vuint16_t BWC:2;    /* bandwidth control */\r
+            vuint16_t MAJORLINKCH:6;    /* enable channel-to-channel link */\r
+            vuint16_t DONE:1;   /* channel done */\r
+            vuint16_t ACTIVE:1; /* channel active */\r
+            vuint16_t MAJORE_LINK:1;    /* enable channel-to-channel link */\r
+            vuint16_t E_SG:1;   /* enable scatter/gather descriptor */\r
+            vuint16_t D_REQ:1;  /* disable ipd_req when done */\r
+            vuint16_t INT_HALF:1;       /* interrupt on citer = (biter >> 1) */\r
+            vuint16_t INT_MAJ:1;        /* interrupt on major loop completion */\r
+            vuint16_t START:1;  /* explicit channel start */\r
+        } TCD[64];              /* transfer_control_descriptor */\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : INTC                                   */\r
+/****************************************************************************/\r
+    struct INTC_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:26;\r
+                vuint32_t VTES:1;\r
+                  vuint32_t:4;\r
+                vuint32_t HVEN:1;\r
+            } B;\r
+        } MCR;                  /* Module Configuration Register */\r
+\r
+        int32_t INTC_reserved00;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:28;\r
+                vuint32_t PRI:4;\r
+            } B;\r
+        } CPR;                  /* Current Priority Register */\r
+\r
+        uint32_t intc_reserved1;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t VTBA:21;\r
+                vuint32_t INTVEC:9;\r
+                  vuint32_t:2;\r
+            } B;\r
+        } IACKR;                /* Interrupt Acknowledge Register */\r
+\r
+        uint32_t intc_reserved2;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:32;\r
+            } B;\r
+        } EOIR;                 /* End of Interrupt Register */\r
+\r
+        uint32_t intc_reserved3;\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:6;\r
+                vuint8_t SET:1;\r
+                vuint8_t CLR:1;\r
+            } B;\r
+        } SSCIR[8];             /* Software Set/Clear Interruput Register */\r
+\r
+        uint32_t intc_reserved4[6];\r
+\r
+        union {\r
+            vuint8_t R;\r
+            struct {\r
+                vuint8_t:4;\r
+                vuint8_t PRI:4;\r
+            } B;\r
+        } PSR[358];             /* Software Set/Clear Interrupt Register */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : EQADC                                  */\r
+/****************************************************************************/\r
+    struct EQADC_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:24;\r
+                vuint32_t ICEA0:1;\r
+                vuint32_t ICEA1:1;\r
+                  vuint32_t:1;\r
+                vuint32_t ESSIE:2;\r
+                  vuint32_t:1;\r
+                vuint32_t DBG:2;\r
+            } B;\r
+        } MCR;                  /* Module Configuration Register */\r
+\r
+        int32_t EQADC_reserved00;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:6;\r
+                vuint32_t NMF:26;\r
+            } B;\r
+        } NMSFR;                /* Null Message Send Format Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:28;\r
+                vuint32_t DFL:4;\r
+            } B;\r
+        } ETDFR;                /* External Trigger Digital Filter Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CFPUSH:32;\r
+            } B;\r
+        } CFPR[6];              /* CFIFO Push Registers */\r
+\r
+        uint32_t eqadc_reserved1;\r
+\r
+        uint32_t eqadc_reserved2;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t RFPOP:16;\r
+            } B;\r
+        } RFPR[6];              /* Result FIFO Pop Registers */\r
+\r
+        uint32_t eqadc_reserved3;\r
+\r
+        uint32_t eqadc_reserved4;\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t:5;\r
+                vuint16_t SSE:1;\r
+                vuint16_t CFINV:1;\r
+                  vuint16_t:1;\r
+                vuint16_t MODE:4;\r
+                  vuint16_t:4;\r
+            } B;\r
+        } CFCR[6];              /* CFIFO Control Registers */\r
+\r
+        uint32_t eqadc_reserved5;\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t NCIE:1;\r
+                vuint16_t TORIE:1;\r
+                vuint16_t PIE:1;\r
+                vuint16_t EOQIE:1;\r
+                vuint16_t CFUIE:1;\r
+                  vuint16_t:1;\r
+                vuint16_t CFFE:1;\r
+                vuint16_t CFFS:1;\r
+                  vuint16_t:4;\r
+                vuint16_t RFOIE:1;\r
+                  vuint16_t:1;\r
+                vuint16_t RFDE:1;\r
+                vuint16_t RFDS:1;\r
+            } B;\r
+        } IDCR[6];              /* Interrupt and DMA Control Registers */\r
+\r
+        uint32_t eqadc_reserved6;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t NCF:1;\r
+                vuint32_t TORF:1;\r
+                vuint32_t PF:1;\r
+                vuint32_t EOQF:1;\r
+                vuint32_t CFUF:1;\r
+                vuint32_t SSS:1;\r
+                vuint32_t CFFF:1;\r
+                  vuint32_t:5;\r
+                vuint32_t RFOF:1;\r
+                  vuint32_t:1;\r
+                vuint32_t RFDF:1;\r
+                  vuint32_t:1;\r
+                vuint32_t CFCTR:4;\r
+                vuint32_t TNXTPTR:4;\r
+                vuint32_t RFCTR:4;\r
+                vuint32_t POPNXTPTR:4;\r
+            } B;\r
+        } FISR[6];              /* FIFO and Interrupt Status Registers */\r
+\r
+        uint32_t eqadc_reserved7;\r
+\r
+        uint32_t eqadc_reserved8;\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t:5;\r
+                vuint16_t TCCF:11;\r
+            } B;\r
+        } CFTCR[6];             /* CFIFO Transfer Counter Registers */\r
+\r
+        uint32_t eqadc_reserved9;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CFS0:2;\r
+                vuint32_t CFS1:2;\r
+                vuint32_t CFS2:2;\r
+                vuint32_t CFS3:2;\r
+                vuint32_t CFS4:2;\r
+                vuint32_t CFS5:2;\r
+                  vuint32_t:5;\r
+                vuint32_t LCFTCB0:4;\r
+                vuint32_t TC_LCFTCB0:11;\r
+            } B;\r
+        } CFSSR0;               /* CFIFO Status Register 0 */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CFS0:2;\r
+                vuint32_t CFS1:2;\r
+                vuint32_t CFS2:2;\r
+                vuint32_t CFS3:2;\r
+                vuint32_t CFS4:2;\r
+                vuint32_t CFS5:2;\r
+                  vuint32_t:5;\r
+                vuint32_t LCFTCB1:4;\r
+                vuint32_t TC_LCFTCB1:11;\r
+            } B;\r
+        } CFSSR1;               /* CFIFO Status Register 1 */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CFS0:2;\r
+                vuint32_t CFS1:2;\r
+                vuint32_t CFS2:2;\r
+                vuint32_t CFS3:2;\r
+                vuint32_t CFS4:2;\r
+                vuint32_t CFS5:2;\r
+                  vuint32_t:4;\r
+                vuint32_t ECBNI:1;\r
+                vuint32_t LCFTSSI:4;\r
+                vuint32_t TC_LCFTSSI:11;\r
+            } B;\r
+        } CFSSR2;               /* CFIFO Status Register 2 */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CFS0:2;\r
+                vuint32_t CFS1:2;\r
+                vuint32_t CFS2:2;\r
+                vuint32_t CFS3:2;\r
+                vuint32_t CFS4:2;\r
+                vuint32_t CFS5:2;\r
+                  vuint32_t:20;\r
+            } B;\r
+        } CFSR;\r
+\r
+        uint32_t eqadc_reserved11;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:21;\r
+                vuint32_t MDT:3;\r
+                  vuint32_t:4;\r
+                vuint32_t BR:4;\r
+            } B;\r
+        } SSICR;                /* SSI Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t RDV:1;\r
+                  vuint32_t:5;\r
+                vuint32_t RDATA:26;\r
+            } B;\r
+        } SSIRDR;               /* SSI Recieve Data Register */\r
+\r
+        uint32_t eqadc_reserved12[17];\r
+\r
+        struct {\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:32;\r
+                } B;\r
+            } R[4];\r
+\r
+            uint32_t eqadc_reserved13[12];\r
+\r
+        } CF[6];\r
+\r
+        uint32_t eqadc_reserved14[32];\r
+\r
+        struct {\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:32;\r
+                } B;\r
+            } R[4];\r
+\r
+            uint32_t eqadc_reserved15[12];\r
+\r
+        } RF[6];\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : DSPI                                   */\r
+/****************************************************************************/\r
+    struct DSPI_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t MSTR:1;\r
+                vuint32_t CONT_SCKE:1;\r
+                vuint32_t DCONF:2;\r
+                vuint32_t FRZ:1;\r
+                vuint32_t MTFE:1;\r
+                vuint32_t PCSSE:1;\r
+                vuint32_t ROOE:1;\r
+                  vuint32_t:2;\r
+                vuint32_t PCSIS5:1;\r
+                vuint32_t PCSIS4:1;\r
+                vuint32_t PCSIS3:1;\r
+                vuint32_t PCSIS2:1;\r
+                vuint32_t PCSIS1:1;\r
+                vuint32_t PCSIS0:1;\r
+                vuint32_t DOZE:1;\r
+                vuint32_t MDIS:1;\r
+                vuint32_t DIS_TXF:1;\r
+                vuint32_t DIS_RXF:1;\r
+                vuint32_t CLR_TXF:1;\r
+                vuint32_t CLR_RXF:1;\r
+                vuint32_t SMPL_PT:2;\r
+                  vuint32_t:7;\r
+                vuint32_t HALT:1;\r
+            } B;\r
+        } MCR;                  /* Module Configuration Register */\r
+\r
+        uint32_t dspi_reserved1;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TCNT:16;\r
+                  vuint32_t:16;\r
+            } B;\r
+        } TCR;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t DBR:1;\r
+                vuint32_t FMSZ:4;\r
+                vuint32_t CPOL:1;\r
+                vuint32_t CPHA:1;\r
+                vuint32_t LSBFE:1;\r
+                vuint32_t PCSSCK:2;\r
+                vuint32_t PASC:2;\r
+                vuint32_t PDT:2;\r
+                vuint32_t PBR:2;\r
+                vuint32_t CSSCK:4;\r
+                vuint32_t ASC:4;\r
+                vuint32_t DT:4;\r
+                vuint32_t BR:4;\r
+            } B;\r
+        } CTAR[8];              /* Clock and Transfer Attributes Registers */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TCF:1;\r
+                vuint32_t TXRXS:1;\r
+                  vuint32_t:1;\r
+                vuint32_t EOQF:1;\r
+                vuint32_t TFUF:1;\r
+                  vuint32_t:1;\r
+                vuint32_t TFFF:1;\r
+                  vuint32_t:5;\r
+                vuint32_t RFOF:1;\r
+                  vuint32_t:1;\r
+                vuint32_t RFDF:1;\r
+                  vuint32_t:1;\r
+                vuint32_t TXCTR:4;\r
+                vuint32_t TXNXTPTR:4;\r
+                vuint32_t RXCTR:4;\r
+                vuint32_t POPNXTPTR:4;\r
+            } B;\r
+        } SR;                   /* Status Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TCFRE:1;\r
+                  vuint32_t:2;\r
+                vuint32_t EOQFRE:1;\r
+                vuint32_t TFUFRE:1;\r
+                  vuint32_t:1;\r
+                vuint32_t TFFFRE:1;\r
+                vuint32_t TFFFDIRS:1;\r
+                  vuint32_t:4;\r
+                vuint32_t RFOFRE:1;\r
+                  vuint32_t:1;\r
+                vuint32_t RFDFRE:1;\r
+                vuint32_t RFDFDIRS:1;\r
+                  vuint32_t:16;\r
+            } B;\r
+        } RSER;                 /* DMA/Interrupt Request Select and Enable Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t CONT:1;\r
+                vuint32_t CTAS:3;\r
+                vuint32_t EOQ:1;\r
+                vuint32_t CTCNT:1;\r
+                  vuint32_t:4;\r
+                vuint32_t PCS5:1;\r
+                vuint32_t PCS4:1;\r
+                vuint32_t PCS3:1;\r
+                vuint32_t PCS2:1;\r
+                vuint32_t PCS1:1;\r
+                vuint32_t PCS0:1;\r
+                vuint32_t TXDATA:16;\r
+            } B;\r
+        } PUSHR;                /* PUSH TX FIFO Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t RXDATA:16;\r
+            } B;\r
+        } POPR;                 /* POP RX FIFO Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TXCMD:16;\r
+                vuint32_t TXDATA:16;\r
+            } B;\r
+        } TXFR[4];              /* Transmit FIFO Registers */\r
+\r
+        vuint32_t DSPI_reserved_txf[12];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t RXDATA:16;\r
+            } B;\r
+        } RXFR[4];              /* Transmit FIFO Registers */\r
+\r
+        vuint32_t DSPI_reserved_rxf[12];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t MTOE:1;\r
+                  vuint32_t:1;\r
+                vuint32_t MTOCNT:6;\r
+                  vuint32_t:3;\r
+                vuint32_t TSBC:1;\r
+                vuint32_t TXSS:1;\r
+                vuint32_t TPOL:1;\r
+                vuint32_t TRRE:1;\r
+                vuint32_t CID:1;\r
+                vuint32_t DCONT:1;\r
+                vuint32_t DSICTAS:3;\r
+                  vuint32_t:6;\r
+                vuint32_t DPCS5:1;\r
+                vuint32_t DPCS4:1;\r
+                vuint32_t DPCS3:1;\r
+                vuint32_t DPCS2:1;\r
+                vuint32_t DPCS1:1;\r
+                vuint32_t DPCS0:1;\r
+            } B;\r
+        } DSICR;                /* DSI Configuration Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t SER_DATA:16;\r
+            } B;\r
+        } SDR;                  /* DSI Serialization Data Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t ASER_DATA:16;\r
+            } B;\r
+        } ASDR;                 /* DSI Alternate Serialization Data Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t COMP_DATA:16;\r
+            } B;\r
+        } COMPR;                /* DSI Transmit Comparison Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t DESER_DATA:16;\r
+            } B;\r
+        } DDR;                  /* DSI deserialization Data Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:2;\r
+                vuint32_t TSBCNT:6;\r
+                  vuint32_t:4;\r
+                vuint32_t TXSS:1;\r
+                  vuint32_t:4;\r
+                vuint32_t DSICTAS:3;\r
+                  vuint32_t:4;\r
+                vuint32_t DPCS1_7:1;\r
+                vuint32_t DPCS1_6:1;\r
+                vuint32_t DPCS1_5:1;\r
+                vuint32_t DPCS1_4:1;\r
+                vuint32_t DPCS1_3:1;\r
+                vuint32_t DPCS1_2:1;\r
+                vuint32_t DPCS1_1:1;\r
+                vuint32_t DPCS1_0:1;\r
+            } B;\r
+        } DSICR1;               /* DSI Configuration Register 1 */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : eSCI                                   */\r
+/****************************************************************************/\r
+    struct ESCI_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:3;\r
+                vuint32_t SBR:13;\r
+                vuint32_t LOOPS:1;\r
+                vuint32_t SCISDOZ:1;\r
+                vuint32_t RSRC:1;\r
+                vuint32_t M:1;\r
+                vuint32_t WAKE:1;\r
+                vuint32_t ILT:1;\r
+                vuint32_t PE:1;\r
+                vuint32_t PT:1;\r
+                vuint32_t TIE:1;\r
+                vuint32_t TCIE:1;\r
+                vuint32_t RIE:1;\r
+                vuint32_t ILIE:1;\r
+                vuint32_t TE:1;\r
+                vuint32_t RE:1;\r
+                vuint32_t RWU:1;\r
+                vuint32_t SBK:1;\r
+            } B;\r
+        } CR1;                  /* Control Register 1 */\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t MDIS:1;\r
+                vuint16_t FBR:1;\r
+                vuint16_t BSTP:1;\r
+                vuint16_t IEBERR:1;\r
+                vuint16_t RXDMA:1;\r
+                vuint16_t TXDMA:1;\r
+                vuint16_t BRK13:1;\r
+                  vuint16_t:1;\r
+                vuint16_t BESM13:1;\r
+                vuint16_t SBSTP:1;\r
+                vuint16_t M2:1;\r
+                vuint16_t INPOL:1;\r
+                vuint16_t ORIE:1;\r
+                vuint16_t NFIE:1;\r
+                vuint16_t FEIE:1;\r
+                vuint16_t PFIE:1;\r
+            } B;\r
+        } CR2;                  /* Control Register 2 */\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t R8:1;\r
+                vuint16_t T8:1;\r
+                  vuint16_t:6;\r
+                vuint8_t D;\r
+            } B;\r
+        } DR;                   /* Data Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t TDRE:1;\r
+                vuint32_t TC:1;\r
+                vuint32_t RDRF:1;\r
+                vuint32_t IDLE:1;\r
+                vuint32_t OR:1;\r
+                vuint32_t NF:1;\r
+                vuint32_t FE:1;\r
+                vuint32_t PF:1;\r
+                  vuint32_t:3;\r
+                vuint32_t BERR:1;\r
+                  vuint32_t:3;\r
+                vuint32_t RAF:1;\r
+                vuint32_t RXRDY:1;\r
+                vuint32_t TXRDY:1;\r
+                vuint32_t LWAKE:1;\r
+                vuint32_t STO:1;\r
+                vuint32_t PBERR:1;\r
+                vuint32_t CERR:1;\r
+                vuint32_t CKERR:1;\r
+                vuint32_t FRC:1;\r
+                  vuint32_t:7;\r
+                vuint32_t OVFL:1;\r
+            } B;\r
+        } SR;                   /* Status Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t LRES:1;\r
+                vuint32_t WU:1;\r
+                vuint32_t WUD0:1;\r
+                vuint32_t WUD1:1;\r
+                vuint32_t LDBG:1;\r
+                vuint32_t DSF:1;\r
+                vuint32_t PRTY:1;\r
+                vuint32_t LIN:1;\r
+                vuint32_t RXIE:1;\r
+                vuint32_t TXIE:1;\r
+                vuint32_t WUIE:1;\r
+                vuint32_t STIE:1;\r
+                vuint32_t PBIE:1;\r
+                vuint32_t CIE:1;\r
+                vuint32_t CKIE:1;\r
+                vuint32_t FCIE:1;\r
+                  vuint32_t:7;\r
+                vuint32_t OFIE:1;\r
+                  vuint32_t:8;\r
+            } B;\r
+        } LCR;                  /* LIN Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } LTR;                  /* LIN Transmit Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } LRR;                  /* LIN Recieve Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } LPR;                  /* LIN CRC Polynom Register  */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : eSCI                                   */\r
+/****************************************************************************/\r
+    struct ESCI_12_13_bit_tag {\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint16_t R12:1;\r
+                vuint16_t T8:1;\r
+                vuint16_t ERR:1;\r
+                  vuint16_t:1;\r
+                vuint16_t D:12;\r
+            } B;\r
+        } DR;                   /* Data Register */\r
+    };\r
+/****************************************************************************/\r
+/*                          MODULE : FlexCAN                                */\r
+/****************************************************************************/\r
+    struct FLEXCAN2_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t MDIS:1;\r
+                vuint32_t FRZ:1;\r
+                  vuint32_t:1;\r
+                vuint32_t HALT:1;\r
+                vuint32_t NOTRDY:1;\r
+                  vuint32_t:1;\r
+                vuint32_t SOFTRST:1;\r
+                vuint32_t FRZACK:1;\r
+                  vuint32_t:1;\r
+                  vuint32_t:1;\r
+\r
+                vuint32_t WRNEN:1;\r
+\r
+                vuint32_t MDISACK:1;\r
+                  vuint32_t:1;\r
+                  vuint32_t:1;\r
+\r
+                vuint32_t SRXDIS:1;\r
+                vuint32_t MBFEN:1;\r
+                  vuint32_t:10;\r
+\r
+                vuint32_t MAXMB:6;\r
+            } B;\r
+        } MCR;                  /* Module Configuration Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t PRESDIV:8;\r
+                vuint32_t RJW:2;\r
+                vuint32_t PSEG1:3;\r
+                vuint32_t PSEG2:3;\r
+                vuint32_t BOFFMSK:1;\r
+                vuint32_t ERRMSK:1;\r
+                vuint32_t CLKSRC:1;\r
+                vuint32_t LPB:1;\r
+\r
+                vuint32_t TWRNMSK:1;\r
+                vuint32_t RWRNMSK:1;\r
+                  vuint32_t:2;\r
+\r
+                vuint32_t SMP:1;\r
+                vuint32_t BOFFREC:1;\r
+                vuint32_t TSYN:1;\r
+                vuint32_t LBUF:1;\r
+                vuint32_t LOM:1;\r
+                vuint32_t PROPSEG:3;\r
+            } B;\r
+        } CR;                   /* Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } TIMER;                /* Free Running Timer */\r
+        int32_t FLEXCAN_reserved00;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:3;\r
+                vuint32_t MI:29;\r
+            } B;\r
+        } RXGMASK;              /* RX Global Mask */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:3;\r
+                vuint32_t MI:29;\r
+            } B;\r
+        } RX14MASK;             /* RX 14 Mask */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:3;\r
+                vuint32_t MI:29;\r
+            } B;\r
+        } RX15MASK;             /* RX 15 Mask */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t RXECNT:8;\r
+                vuint32_t TXECNT:8;\r
+            } B;\r
+        } ECR;                  /* Error Counter Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:14;\r
+\r
+                vuint32_t TWRNINT:1;\r
+                vuint32_t RWRNINT:1;\r
+\r
+                vuint32_t BIT1ERR:1;\r
+                vuint32_t BIT0ERR:1;\r
+                vuint32_t ACKERR:1;\r
+                vuint32_t CRCERR:1;\r
+                vuint32_t FRMERR:1;\r
+                vuint32_t STFERR:1;\r
+                vuint32_t TXWRN:1;\r
+                vuint32_t RXWRN:1;\r
+                vuint32_t IDLE:1;\r
+                vuint32_t TXRX:1;\r
+                vuint32_t FLTCONF:2;\r
+                  vuint32_t:1;\r
+                vuint32_t BOFFINT:1;\r
+                vuint32_t ERRINT:1;\r
+                  vuint32_t:1;\r
+            } B;\r
+        } ESR;                  /* Error and Status Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BUF63M:1;\r
+                vuint32_t BUF62M:1;\r
+                vuint32_t BUF61M:1;\r
+                vuint32_t BUF60M:1;\r
+                vuint32_t BUF59M:1;\r
+                vuint32_t BUF58M:1;\r
+                vuint32_t BUF57M:1;\r
+                vuint32_t BUF56M:1;\r
+                vuint32_t BUF55M:1;\r
+                vuint32_t BUF54M:1;\r
+                vuint32_t BUF53M:1;\r
+                vuint32_t BUF52M:1;\r
+                vuint32_t BUF51M:1;\r
+                vuint32_t BUF50M:1;\r
+                vuint32_t BUF49M:1;\r
+                vuint32_t BUF48M:1;\r
+                vuint32_t BUF47M:1;\r
+                vuint32_t BUF46M:1;\r
+                vuint32_t BUF45M:1;\r
+                vuint32_t BUF44M:1;\r
+                vuint32_t BUF43M:1;\r
+                vuint32_t BUF42M:1;\r
+                vuint32_t BUF41M:1;\r
+                vuint32_t BUF40M:1;\r
+                vuint32_t BUF39M:1;\r
+                vuint32_t BUF38M:1;\r
+                vuint32_t BUF37M:1;\r
+                vuint32_t BUF36M:1;\r
+                vuint32_t BUF35M:1;\r
+                vuint32_t BUF34M:1;\r
+                vuint32_t BUF33M:1;\r
+                vuint32_t BUF32M:1;\r
+            } B;\r
+        } IMRH;                 /* Interruput Masks Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BUF31M:1;\r
+                vuint32_t BUF30M:1;\r
+                vuint32_t BUF29M:1;\r
+                vuint32_t BUF28M:1;\r
+                vuint32_t BUF27M:1;\r
+                vuint32_t BUF26M:1;\r
+                vuint32_t BUF25M:1;\r
+                vuint32_t BUF24M:1;\r
+                vuint32_t BUF23M:1;\r
+                vuint32_t BUF22M:1;\r
+                vuint32_t BUF21M:1;\r
+                vuint32_t BUF20M:1;\r
+                vuint32_t BUF19M:1;\r
+                vuint32_t BUF18M:1;\r
+                vuint32_t BUF17M:1;\r
+                vuint32_t BUF16M:1;\r
+                vuint32_t BUF15M:1;\r
+                vuint32_t BUF14M:1;\r
+                vuint32_t BUF13M:1;\r
+                vuint32_t BUF12M:1;\r
+                vuint32_t BUF11M:1;\r
+                vuint32_t BUF10M:1;\r
+                vuint32_t BUF09M:1;\r
+                vuint32_t BUF08M:1;\r
+                vuint32_t BUF07M:1;\r
+                vuint32_t BUF06M:1;\r
+                vuint32_t BUF05M:1;\r
+                vuint32_t BUF04M:1;\r
+                vuint32_t BUF03M:1;\r
+                vuint32_t BUF02M:1;\r
+                vuint32_t BUF01M:1;\r
+                vuint32_t BUF00M:1;\r
+            } B;\r
+        } IMRL;                 /* Interruput Masks Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BUF63I:1;\r
+                vuint32_t BUF62I:1;\r
+                vuint32_t BUF61I:1;\r
+                vuint32_t BUF60I:1;\r
+                vuint32_t BUF59I:1;\r
+                vuint32_t BUF58I:1;\r
+                vuint32_t BUF57I:1;\r
+                vuint32_t BUF56I:1;\r
+                vuint32_t BUF55I:1;\r
+                vuint32_t BUF54I:1;\r
+                vuint32_t BUF53I:1;\r
+                vuint32_t BUF52I:1;\r
+                vuint32_t BUF51I:1;\r
+                vuint32_t BUF50I:1;\r
+                vuint32_t BUF49I:1;\r
+                vuint32_t BUF48I:1;\r
+                vuint32_t BUF47I:1;\r
+                vuint32_t BUF46I:1;\r
+                vuint32_t BUF45I:1;\r
+                vuint32_t BUF44I:1;\r
+                vuint32_t BUF43I:1;\r
+                vuint32_t BUF42I:1;\r
+                vuint32_t BUF41I:1;\r
+                vuint32_t BUF40I:1;\r
+                vuint32_t BUF39I:1;\r
+                vuint32_t BUF38I:1;\r
+                vuint32_t BUF37I:1;\r
+                vuint32_t BUF36I:1;\r
+                vuint32_t BUF35I:1;\r
+                vuint32_t BUF34I:1;\r
+                vuint32_t BUF33I:1;\r
+                vuint32_t BUF32I:1;\r
+            } B;\r
+        } IFRH;                 /* Interruput Flag Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BUF31I:1;\r
+                vuint32_t BUF30I:1;\r
+                vuint32_t BUF29I:1;\r
+                vuint32_t BUF28I:1;\r
+                vuint32_t BUF27I:1;\r
+                vuint32_t BUF26I:1;\r
+                vuint32_t BUF25I:1;\r
+                vuint32_t BUF24I:1;\r
+                vuint32_t BUF23I:1;\r
+                vuint32_t BUF22I:1;\r
+                vuint32_t BUF21I:1;\r
+                vuint32_t BUF20I:1;\r
+                vuint32_t BUF19I:1;\r
+                vuint32_t BUF18I:1;\r
+                vuint32_t BUF17I:1;\r
+                vuint32_t BUF16I:1;\r
+                vuint32_t BUF15I:1;\r
+                vuint32_t BUF14I:1;\r
+                vuint32_t BUF13I:1;\r
+                vuint32_t BUF12I:1;\r
+                vuint32_t BUF11I:1;\r
+                vuint32_t BUF10I:1;\r
+                vuint32_t BUF09I:1;\r
+                vuint32_t BUF08I:1;\r
+                vuint32_t BUF07I:1;\r
+                vuint32_t BUF06I:1;\r
+                vuint32_t BUF05I:1;\r
+                vuint32_t BUF04I:1;\r
+                vuint32_t BUF03I:1;\r
+                vuint32_t BUF02I:1;\r
+                vuint32_t BUF01I:1;\r
+                vuint32_t BUF00I:1;\r
+            } B;\r
+        } IFRL;                 /* Interruput Flag Register */\r
+\r
+        uint32_t flexcan2_reserved2[19];\r
+\r
+        struct canbuf_t {\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:4;\r
+                    vuint32_t CODE:4;\r
+                      vuint32_t:1;\r
+                    vuint32_t SRR:1;\r
+                    vuint32_t IDE:1;\r
+                    vuint32_t RTR:1;\r
+                    vuint32_t LENGTH:4;\r
+                    vuint32_t TIMESTAMP:16;\r
+                } B;\r
+            } CS;\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:3;\r
+                    vuint32_t STD_ID:11;\r
+                    vuint32_t EXT_ID:18;\r
+                } B;\r
+            } ID;\r
+\r
+            union {\r
+                vuint8_t B[8];  /* Data buffer in Bytes (8 bits) */\r
+                vuint16_t H[4]; /* Data buffer in Half-words (16 bits) */\r
+                vuint32_t W[2]; /* Data buffer in words (32 bits) */\r
+                vuint32_t R[2]; /* Data buffer in words (32 bits) */\r
+            } DATA;\r
+\r
+        } BUF[32];\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : Decimation Filter (DECFIL)                  */\r
+/****************************************************************************/\r
+    struct DECFIL_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t MDIS:1;\r
+                vuint32_t FREN:1;\r
+                  vuint32_t:1;\r
+                vuint32_t FRZ:1;\r
+                vuint32_t SRES:1;\r
+                  vuint32_t:2;\r
+                vuint32_t IDEN:1;\r
+                vuint32_t ODEN:1;\r
+                vuint32_t ERREN:1;\r
+                  vuint32_t:1;\r
+                vuint32_t FTYPE:2;\r
+                  vuint32_t:1;\r
+                vuint32_t SCAL:2;\r
+                  vuint32_t:1;\r
+                vuint32_t SAT:1;\r
+                vuint32_t ISEL:1;\r
+                  vuint32_t:1;\r
+                vuint32_t DEC_RATE:4;\r
+                  vuint32_t:8;\r
+            } B;\r
+        } MCR;                  /* Configuration Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t BSY:1;\r
+                  vuint32_t:1;\r
+                vuint32_t DEC_COUNTER:4;\r
+                vuint32_t IDFC:1;\r
+                vuint32_t ODFC:1;\r
+                  vuint32_t:5;\r
+                vuint32_t OVFC:1;\r
+                vuint32_t OVRC:1;\r
+                vuint32_t IVRC:1;\r
+                  vuint32_t:6;\r
+                vuint32_t IDF:1;\r
+                vuint32_t ODF:1;\r
+                  vuint32_t:5;\r
+                vuint32_t OVF:1;\r
+                vuint32_t OVR:1;\r
+                vuint32_t IVR:1;\r
+            } B;\r
+        } MSR;                  /* Status Register */\r
+\r
+        uint32_t decfil_reserved1[2];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:14;\r
+                vuint32_t PREFILL:1;\r
+                vuint32_t FLUSH:1;\r
+                vuint32_t INPBUF:16;\r
+            } B;\r
+        } IB;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:12;\r
+                vuint32_t OUTTEG:4;\r
+                vuint32_t OUTBUF:16;\r
+            } B;\r
+        } OB;\r
+\r
+        uint32_t decfil_reserved2[2];\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint32_t:8;\r
+                vuint32_t COEF:24;\r
+            } B;\r
+        } COEF[9];              /* Filter Coefficient Registers */\r
+\r
+        uint32_t decfil_reserved3[13];\r
+\r
+        union {\r
+            vuint16_t R;\r
+            struct {\r
+                vuint32_t:8;\r
+                vuint32_t COEF:24;\r
+            } B;\r
+        } TAP[8];               /* Filter TAP Registers */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : Periodic Interval Timer (PIT)               */\r
+/****************************************************************************/\r
+    struct PIT_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:29;\r
+                vuint32_t MDIS_RTI:1;\r
+                vuint32_t MDIS:1;\r
+                vuint32_t FRZ:1;\r
+            } B;\r
+        } MCR;                  /* PIT Module Control Register */\r
+\r
+        uint32_t pit_reserved1[59];\r
+\r
+        struct {\r
+            union {\r
+                vuint32_t R;\r
+            } LDVAL;            /* Timer Load Value Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+            } CVAL;             /* Current Timer Value Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:30;\r
+                    vuint32_t TIE:1;\r
+                    vuint32_t TEN:1;\r
+                } B;\r
+            } TCTRL;            /* Timer Control Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:31;\r
+                    vuint32_t TIF:1;\r
+                } B;\r
+            } TFLG;             /* Timer Flag Register */\r
+        } RTI;                  /* RTI Channel */\r
+\r
+        struct {\r
+            union {\r
+                vuint32_t R;\r
+            } LDVAL;            /* Timer Load Value Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+            } CVAL;             /* Current Timer Value Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:30;\r
+                    vuint32_t TIE:1;\r
+                    vuint32_t TEN:1;\r
+                } B;\r
+            } TCTRL;            /* Timer Control Register */\r
+\r
+            union {\r
+                vuint32_t R;\r
+                struct {\r
+                    vuint32_t:31;\r
+                    vuint32_t TIF:1;\r
+                } B;\r
+            } TFLG;             /* Timer Flag Register */\r
+        } TIMER[4];             /* Timer Channels */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : System Timer Module (STM)                   */\r
+/****************************************************************************/\r
+    struct STM_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t CPS:8;\r
+                  vuint32_t:6;\r
+                vuint32_t FRZ:1;\r
+                vuint32_t TEN:1;\r
+            } B;\r
+        } CR;                   /* STM Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CNT;                  /* STM Counter Value */\r
+\r
+        uint32_t stm_reserved1[2];\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CEN:1;\r
+            } B;\r
+        } CCR0;                 /* STM Channel 0 Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CIF:1;\r
+            } B;\r
+        } CIR0;                 /* STM Channel 0 Interrupt Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CMP0;                 /* STM Channel 0 Compare Register */\r
+\r
+        uint32_t stm_reserved2;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CEN:1;\r
+            } B;\r
+        } CCR1;                 /* STM Channel 0 Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CIF:1;\r
+            } B;\r
+        } CIR1;                 /* STM Channel 0 Interrupt Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CMP1;                 /* STM Channel 0 Compare Register */\r
+\r
+        uint32_t stm_reserved3;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CEN:1;\r
+            } B;\r
+        } CCR2;                 /* STM Channel 0 Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CIF:1;\r
+            } B;\r
+        } CIR2;                 /* STM Channel 0 Interrupt Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CMP2;                 /* STM Channel 0 Compare Register */\r
+\r
+        uint32_t stm_reserved4;\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CEN:1;\r
+            } B;\r
+        } CCR3;                 /* STM Channel 0 Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t CIF:1;\r
+            } B;\r
+        } CIR3;                 /* STM Channel 0 Interrupt Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CMP3;                 /* STM Channel 0 Compare Register */\r
+\r
+        uint32_t stm_reserved5;\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : Software Watchdog Timer (SWT)               */\r
+/****************************************************************************/\r
+    struct SWT_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t MAP0:1;\r
+                vuint32_t MAP1:1;\r
+                vuint32_t MAP2:1;\r
+                vuint32_t MAP3:1;\r
+                vuint32_t MAP4:1;\r
+                vuint32_t MAP5:1;\r
+                vuint32_t MAP6:1;\r
+                vuint32_t MAP7:1;\r
+                  vuint32_t:15;\r
+                vuint32_t RIA:1;\r
+                vuint32_t WNO:1;\r
+                vuint32_t ITR:1;\r
+                vuint32_t HLK:1;\r
+                vuint32_t SLK:1;\r
+                vuint32_t CSL:1;\r
+                vuint32_t STP:1;\r
+                vuint32_t FRZ:1;\r
+                vuint32_t WEN:1;\r
+            } B;\r
+        } CR;                   /* SWT Control Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:31;\r
+                vuint32_t TIF:1;\r
+            } B;\r
+        } IR;                   /* SWT Interrupt Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } TO;                   /* SWT Time-out Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } WN;                   /* SWT Window Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:16;\r
+                vuint32_t WSC:16;\r
+            } B;\r
+        } SR;                   /* SWT Service Register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+        } CO;                   /* Counter Output Register */\r
+\r
+    };\r
+/****************************************************************************/\r
+/*                     MODULE : Power Management Controller (PMC)           */\r
+/****************************************************************************/\r
+    struct PMC_tag {\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t LVIRR:1;\r
+                vuint32_t LVIHR:1;\r
+                vuint32_t LVI5R:1;\r
+                vuint32_t LVI3R:1;\r
+                vuint32_t LVI1R:1;\r
+                vuint32_t BRW:1;\r
+                vuint32_t BGS1:1;\r
+                vuint32_t BGS2:1;\r
+                vuint32_t LVIRE:1;\r
+                vuint32_t LVIHE:1;\r
+                vuint32_t LVI5E:1;\r
+                vuint32_t LVI3E:1;\r
+                vuint32_t LVI1E:1;\r
+                  vuint32_t:2;\r
+                vuint32_t TLK:1;\r
+                vuint32_t LVIRC:1;\r
+                vuint32_t LVIHC:1;\r
+                vuint32_t LVI5C:1;\r
+                vuint32_t LVI3C:1;\r
+                vuint32_t LVI1C:1;\r
+                  vuint32_t:3;\r
+                vuint32_t LVIRF:1;\r
+                vuint32_t LVIHF:1;\r
+                vuint32_t LVI5F:1;\r
+                vuint32_t LVI3F:1;\r
+                vuint32_t LVI1F:1;\r
+                  vuint32_t:3;\r
+            } B;\r
+        } CFGR;                 /* Configuration and status register */\r
+\r
+        union {\r
+            vuint32_t R;\r
+            struct {\r
+                vuint32_t:12;\r
+                vuint32_t LVI50TRIM:4;\r
+                vuint32_t V33TRIM:4;\r
+                vuint32_t LVI33TRIM:4;\r
+                vuint32_t V12TRIM:4;\r
+                vuint32_t LVI12TRIM:4;\r
+            } B;\r
+        } TRIMR;                /* Trimming register */\r
+    };\r
+\r
+/* Define memories */\r
+\r
+#define SRAM_START  0x40000000\r
+#define SRAM_SIZE       0xC000\r
+#define SRAM_END    0x4000BFFF\r
+\r
+#define FLASH_START         0x0\r
+#define FLASH_SIZE     0x100000\r
+#define FLASH_END       0xFFFFF\r
+\r
+/* Define instances of modules */\r
+#define FMPLL     (*( volatile struct FMPLL_tag *)     0xC3F80000)\r
+#define EBI       (*( volatile struct EBI_tag *)       0xC3F84000)\r
+#define FLASH     (*( volatile struct FLASH_tag *)     0xC3F88000)\r
+#define SIU       (*( volatile struct SIU_tag *)       0xC3F90000)\r
+\r
+#define EMIOS     (*( volatile struct EMIOS_tag *)     0xC3FA0000)\r
+#define PMC       (*( volatile struct PMC_tag *)       0xC3FBC000)\r
+#define ETPU      (*( volatile struct ETPU_tag *)      0xC3FC0000)\r
+#define ETPU_DATA_RAM  (*( uint32_t *)        0xC3FC8000)\r
+#define ETPU_DATA_RAM_EXT  (*( uint32_t *)    0xC3FCC000)\r
+#define ETPU_DATA_RAM_END  0xC3FC89FC\r
+#define CODE_RAM       (*( uint32_t *)        0xC3FD0000)\r
+#define ETPU_CODE_RAM  (*( uint32_t *)        0xC3FD0000)\r
+#define PIT       (*( volatile struct PIT_tag *)       0xC3FF0000)\r
+\r
+#define PBRIDGE (*( struct PBRIDGE_tag *)              0xFFF00000)\r
+#define XBAR      (*( volatile struct XBAR_tag *)      0xFFF04000)\r
+#define SWT       (*( volatile struct SWT_tag *)       0xFFF38000)\r
+#define STM       (*( volatile struct STM_tag *)       0xFFF3C000)\r
+#define ECSM      (*( volatile struct ECSM_tag *)      0xFFF40000)\r
+#define EDMA      (*( volatile struct EDMA_tag *)      0xFFF44000)\r
+#define INTC      (*( volatile struct INTC_tag *)      0xFFF48000)\r
+\r
+#define EQADC     (*( volatile struct EQADC_tag *)     0xFFF80000)\r
+#define DECFIL    (*( volatile struct DECFIL_tag *)    0xFFF88000)\r
+\r
+#define DSPI_B    (*( volatile struct DSPI_tag *)      0xFFF94000)\r
+#define DSPI_C    (*( volatile struct DSPI_tag *)      0xFFF98000)\r
+\r
+#define ESCI_A    (*( volatile struct ESCI_tag *)      0xFFFB0000)\r
+#define ESCI_A_12_13    (*( volatile struct ESCI_12_13_bit_tag *)      0xFFFB0006)\r
+#define ESCI_B    (*( volatile struct ESCI_tag *)      0xFFFB4000)\r
+#define ESCI_B_12_13    (*( volatile struct ESCI_12_13_bit_tag *)      0xFFFB4006)\r
+\r
+#define CAN_A     (*( volatile struct FLEXCAN2_tag *)  0xFFFC0000)\r
+#define CAN_C     (*( volatile struct FLEXCAN2_tag *)  0xFFFC8000)\r
+\r
+#ifdef __MWERKS__\r
+#pragma pop\r
+#endif\r
+\r
+#ifdef  __cplusplus\r
+}\r
+#endif\r
+#endif                          /* ifdef _MPC563M_H */\r
+/*********************************************************************\r
+ *\r
+ * Copyright:\r
+ *     Freescale Semiconductor, INC. All Rights Reserved.\r
+ *  You are hereby granted a copyright license to use, modify, and\r
+ *  distribute the SOFTWARE so long as this entire notice is\r
+ *  retained without alteration in any modified and/or redistributed\r
+ *  versions, and that such modified versions are clearly identified\r
+ *  as such. No licenses are granted by implication, estoppel or\r
+ *  otherwise under any patents or trademarks of Freescale\r
+ *  Semiconductor, Inc. This software is provided on an "AS IS"\r
+ *  basis and without warranty.\r
+ *\r
+ *  To the maximum extent permitted by applicable law, Freescale\r
+ *  Semiconductor DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,\r
+ *  INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A\r
+ *  PARTICULAR PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH\r
+ *  REGARD TO THE SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)\r
+ *  AND ANY ACCOMPANYING WRITTEN MATERIALS.\r
+ *\r
+ *  To the maximum extent permitted by applicable law, IN NO EVENT\r
+ *  SHALL Freescale Semiconductor BE LIABLE FOR ANY DAMAGES WHATSOEVER\r
+ *  (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,\r
+ *  BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER\r
+ *  PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.\r
+ *\r
+ *  Freescale Semiconductor assumes no responsibility for the\r
+ *  maintenance and support of this software\r
+ *\r
+ ********************************************************************/\r
diff --git a/arch/ppc/mpc55xx/drivers/mpc563m_vars.h b/arch/ppc/mpc55xx/drivers/mpc563m_vars.h
new file mode 100644 (file)
index 0000000..669aaeb
--- /dev/null
@@ -0,0 +1,55 @@
+/**************************************************************************\r
+ * FILE NAME: $RCSfile: mpc563m_vars.h,v $   COPYRIGHT (c) Freescale 2005 *\r
+ * DESCRIPTION:                                     All Rights Reserved   *\r
+ * Variables that define some features of the MPC563M.                    *\r
+ * !!!!This file must only be included once in every project!!!!          *\r
+ *========================================================================*\r
+ * ORIGINAL AUTHOR: Geoff Emerson [r47354]                                *\r
+ * $Log: mpc563m_vars.h,v $\r
+ * Revision 1.1  2007/11/09 08:48:41  r47354\r
+ * *** empty log message ***\r
+ *\r
+\r
+ *\r
+ **************************************************************************/\r
+\r
+/* eTPU characteristics definition */\r
+struct eTPU_struct *eTPU = (struct eTPU_struct *)0xC3FC0000;\r
+\r
+uint32_t fs_etpu_code_start =     0xC3FD0000;\r
+uint32_t fs_etpu_data_ram_start = 0xC3FC8000;\r
+uint32_t fs_etpu_data_ram_end =   0xC3FC89FC;\r
+uint32_t fs_etpu_data_ram_ext =   0xC3FCC000;\r
+\r
+/*********************************************************************\r
+ *\r
+ * Copyright:\r
+ *     Freescale Semiconductor, INC. All Rights Reserved.\r
+ *  You are hereby granted a copyright license to use, modify, and\r
+ *  distribute the SOFTWARE so long as this entire notice is\r
+ *  retained without alteration in any modified and/or redistributed\r
+ *  versions, and that such modified versions are clearly identified\r
+ *  as such. No licenses are granted by implication, estoppel or\r
+ *  otherwise under any patents or trademarks of Freescale\r
+ *  Semiconductor, Inc. This software is provided on an "AS IS"\r
+ *  basis and without warranty.\r
+ *\r
+ *  To the maximum extent permitted by applicable law, Freescale\r
+ *  Semiconductor DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,\r
+ *  INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A\r
+ *  PARTICULAR PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH\r
+ *  REGARD TO THE SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)\r
+ *  AND ANY ACCOMPANYING WRITTEN MATERIALS.\r
+ *\r
+ *  To the maximum extent permitted by applicable law, IN NO EVENT\r
+ *  SHALL Freescale Semiconductor BE LIABLE FOR ANY DAMAGES WHATSOEVER\r
+ *  (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,\r
+ *  BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER\r
+ *  PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.\r
+ *\r
+ *  Freescale Semiconductor assumes no responsibility for the\r
+ *  maintenance and support of this software\r
+ *\r
+ ********************************************************************/\r
+\r
+\r
index c33925b752757927ead24776273802bc399052af..824796460273edd10128802de54ab8fdd2a3b7fe 100644 (file)
@@ -71,7 +71,7 @@ void IntCtrl_Init( void ) {
          ramlog_dec(20);
 
          // TODO: The 5516 simulator still thinks it's a 5554 so setup the rest
-#if (defined(CFG_SIMULATOR) && defined(CFG_MPC5516)) || defined(CFG_MPC5567) || defined(CFG_MPC5554)
+#if (defined(CFG_SIMULATOR) && defined(CFG_MPC5516)) || defined(CFG_MPC5567) || defined(CFG_MPC5554) || defined(CFG_MPC5633)
            set_spr(SPR_IVOR0,((uint32_t)&exception_tbl+0x0) );
            set_spr(SPR_IVOR1,((uint32_t)&exception_tbl+0x10) );
            set_spr(SPR_IVOR2,((uint32_t)&exception_tbl+0x20) );
@@ -112,7 +112,7 @@ void IntCtrl_Init( void ) {
        #if defined(CFG_MPC5516)
          INTC.MCR.B.HVEN_PRC0 = 0; // Soft vector mode
          INTC.MCR.B.VTES_PRC0 = 0; // 4 byte offset between entries
-       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567)
+       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567) || defined(CFG_MPC5633)
          INTC.MCR.B.HVEN = 0; // Soft vector mode
          INTC.MCR.B.VTES = 0; // 4 byte offset between entries
        #endif
@@ -124,7 +124,7 @@ void IntCtrl_Init( void ) {
          assert( (((uint32_t)&Irq_VectorTable[0]) & 0x7ff) == 0 );
        #if defined(CFG_MPC5516)
          INTC.IACKR_PRC0.R = (uint32_t) & Irq_VectorTable[0]; // Set INTC ISR vector table
-       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567)
+       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567) || defined(CFG_MPC5633)
          INTC.IACKR.R = (uint32_t) & Irq_VectorTable[0]; // Set INTC ISR vector table
        #endif
 #endif
@@ -133,7 +133,7 @@ void IntCtrl_Init( void ) {
          {
        #if defined(CFG_MPC5516)
            INTC.EOIR_PRC0.R = 0;
-       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567)
+       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567) || defined(CFG_MPC5633)
            INTC.EOIR.R = 0;
        #endif
          }
@@ -141,7 +141,7 @@ void IntCtrl_Init( void ) {
          // Accept interrupts
        #if defined(CFG_MPC5516)
          INTC.CPR_PRC0.B.PRI = 0;
-       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567)
+       #elif defined(CFG_MPC5554) || defined(CFG_MPC5567) || defined(CFG_MPC5633)
          INTC.CPR.B.PRI = 0;
        #endif
 
@@ -152,7 +152,7 @@ void IntCtrl_EOI( void ) {
 #if defined(CFG_MPC5516)
        struct INTC_tag *intc = &INTC;
        intc->EOIR_PRC0.R = 0;
-#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#elif defined(CFG_MPC5554)||defined(CFG_MPC5567) || defined(CFG_MPC5633)
        volatile struct INTC_tag *intc = &INTC;
        intc->EOIR.R = 0;
 #endif
@@ -182,7 +182,7 @@ void *IntCtrl_Entry( void *stack_p )
 #if defined(CFG_MPC5516)
                struct INTC_tag *intc = &INTC;
                vector = (intc->IACKR_PRC0.B.INTVEC_PRC0);
-#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#elif defined(CFG_MPC5554)||defined(CFG_MPC5567) || defined(CFG_MPC5633)
                volatile struct INTC_tag *intc = &INTC;
                vector = (intc->IACKR.B.INTVEC);
 #endif
@@ -371,7 +371,7 @@ uint8_t IntCtrl_GetCurrentPriority( Cpu_t cpu) {
        } else if ( cpu == CPU_Z0 ) {
                prio = INTC.CPR_PRC1.B.PRI;
        }
-#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)|| defined(CFG_MPC5633)
        prio = INTC.CPR.B.PRI;
 #endif
 
index 98f8bea098c777b8fb3528fa38bc9fe5109ecd1b..37a511d84cc82f941f80b467d313c98917ea3107 100644 (file)
@@ -64,7 +64,7 @@ typedef enum
   EDMA_INTL_INT13,
   EDMA_INTL_INT14,
   EDMA_INTL_INT15,             // 26
-#if defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#if defined(CFG_MPC5554)||defined(CFG_MPC5567)||defined(CFG_MPC5633)
   EDMA_INTL_INT16,
   EDMA_INTL_INT17,
   EDMA_INTL_INT18,
@@ -146,7 +146,7 @@ typedef enum
   EMISOS200_FLAG_F21,
   EMISOS200_FLAG_F22,
   EMISOS200_FLAG_F23,  // 16-81
-#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)||defined(CFG_MPC5633)
   ETPU_GLOBAL,         // 54-67
   ETPU_A_CIS_0,
   ETPU_A_CIS_1,
@@ -232,7 +232,7 @@ typedef enum
   DSPI_B_ISR_TFFF,
   DSPI_B_ISR_TCF,
   DSPI_B_ISR_RFDF,
-#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#elif defined(CFG_MPC5554)||defined(CFG_MPC5567)||defined(CFG_MPC5633)
   DSPI_B_COMB,         // 54-131
   DSPI_B_ISR_EOQF,
   DSPI_B_ISR_TFFF,
@@ -467,7 +467,7 @@ typedef enum
   RESERVED_SPACE_BEFORE_EXCEPTIONS25,
 #endif
 
-#if defined(CFG_MPC5554)||defined(CFG_MPC5567)
+#if defined(CFG_MPC5554)||defined(CFG_MPC5567)||defined(CFG_MPC5633)
   /* FlexCAN C */
   FLEXCAN_C_ESR_BOFF_INT = 173,
   FLEXCAN_C_ESR_ERR_INT,
@@ -573,7 +573,7 @@ typedef enum
 
   DUMMY_DUMMY = 319,
 
-#endif /* defined(CFG_MPC5554)||defined(CFG_MPC5567) */
+#endif /* defined(CFG_MPC5554)||defined(CFG_MPC5567)||defined(CFG_MPC5633) */
 
   CRITICAL_INPUT_EXCEPTION,
   MACHINE_CHECK_EXCEPTION,
diff --git a/arm_mac_build.mk b/arm_mac_build.mk
deleted file mode 100644 (file)
index e2ebaa5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-BDIR=system/kernel,system/kernel/testsystem
-CROSS_COMPILE=/opt/arm-elf/bin/arm-elf-
diff --git a/board_config.mk b/board_config.mk
deleted file mode 100644 (file)
index 52c0d0a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-export BOARDDIR=mpc5554sim
-export MCU=MPC5554
-export ARCH=mpc55xx
-export ARCH_FAM=ppc
index 4f36f58c5310b7a4f3c236be2660372a2ee11c8d..9bed78fb7fc25df8be33057c70e05bffe938bca4 100644 (file)
@@ -41,8 +41,12 @@ inc-$(CFG_MPC55XX) +=  $(ROOTDIR)/$(ARCH_PATH-y)/delivery/mpc5500_h7f/include
 # Can\r
 obj-$(USE_CAN) += Can.o\r
 obj-$(USE_CAN) += Can_Lcfg.o\r
+\r
+# CanIf\r
 obj-$(USE_CANIF) += CanIf.o\r
 obj-$(USE_CANIF) += CanIf_Cfg.o\r
+vpath-$(USE_CANIF) += $(ROOTDIR)/communication/CanIf\r
+inc-$(USE_CANIF) += $(ROOTDIR)/communication/CanIf\r
 \r
 obj-$(USE_DIO) += Dio.o\r
 obj-$(USE_DIO) += Dio_Lcfg.o\r
index b66fbb04f5b91da9509768452b9165526ff1c9f5..84874db7c9710898878ca6127f962473f154d5fc 100644 (file)
@@ -17,7 +17,7 @@
 #ifndef MCU_CFG_C_\r
 #define MCU_CFG_C_\r
 \r
-#include "Mcu_Cfg.h"\r
+#include "Mcu.h"\r
 \r
 Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
   {\r
index b6c2b839517a701d090868cce968684b1524d4be..eb3ec25117f344ecbb18bff1eba3ece2b50f8498 100644 (file)
 // Imported structs from Can_Lcfg.c\r
 extern const Can_ControllerConfigType CanControllerConfigData[];\r
 extern const Can_ConfigSetType CanConfigSetData;\r
-\r
+
+// Contains the mapping from CanIf-specific Channels to Can Controllers
+const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = {
+               CAN_CTRL_A, // CANIF_CHANNEL_0
+               CAN_CTRL_C, // CANIF_CHANNEL_1
+};\r
 \r
 // Container that gets slamed into CanIf_InitController()\r
 // Inits ALL controllers\r
 // Multiplicity 1..*\r
 const CanIf_ControllerConfigType CanIfControllerConfig[] =\r
 {\r
-  { // This is the ConfigurationIndex in CanIf_InitController()\r
-    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_A,\r
-    .CanIfDriverNameRef = "FLEXCAN",  // Not used\r
-    .CanIfInitControllerRef = &CanControllerConfigData[0],\r
-  },\r
-  {\r
-    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_C,\r
-    .CanIfDriverNameRef = "FLEXCAN", // Not used\r
-    .CanIfInitControllerRef = &CanControllerConfigData[1],\r
+  { // CANIF_CHANNEL_0_CONFIG_0
+    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,
+    .CanIfControllerIdRef = CANIF_CHANNEL_0,
+    .CanIfDriverNameRef = "FLEXCAN",  // Not used
+    .CanIfInitControllerRef = &CanControllerConfigData[0],
+  },
+  { // CANIF_CHANNEL_1_CONFIG_0
+    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,
+    .CanIfControllerIdRef = CANIF_CHANNEL_1,
+    .CanIfDriverNameRef = "FLEXCAN", // Not used
+    .CanIfInitControllerRef = &CanControllerConfigData[1],
   }\r
 };\r
 \r
@@ -60,16 +65,16 @@ const CanIf_DispatchConfigType CanIfDispatchConfig =
 const CanIf_HthConfigType CanIfHthConfigData[] =\r
 {\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_A,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_0,\r
     .CanIfHthIdSymRef = CAN_HTH_A_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_C,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_1,\r
     .CanIfHthIdSymRef = CAN_HTH_C_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -77,18 +82,18 @@ const CanIf_HthConfigType CanIfHthConfigData[] =
 const CanIf_HrhConfigType CanIfHrhConfigData[] =\r
 {\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_A,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_0,\r
     .CanIfHrhIdSymRef = CAN_HRH_A_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_C,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_1,\r
     .CanIfHrhIdSymRef = CAN_HRH_C_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 //-------------------------------------------------------------------\r
@@ -108,7 +113,7 @@ const CanIf_TxPduConfigType CanIfTxPduConfigData[] =
 #endif\r
     .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation, //NULL,\r
-    .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on controller A,\r
+    .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on channel 0,\r
     .PduIdRef = NULL,\r
   },\r
   {\r
@@ -121,7 +126,7 @@ const CanIf_TxPduConfigType CanIfTxPduConfigData[] =
 #endif\r
     .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfUserTxConfirmation = NULL,\r
-    .CanIfCanTxPduHthRef = &CanIfHthConfigData[1], // Send on controller C,\r
+    .CanIfCanTxPduHthRef = &CanIfHthConfigData[1], // Send on channel 1,\r
     .PduIdRef = NULL,\r
   },\r
   //Added by mattias\r
@@ -135,7 +140,7 @@ const CanIf_TxPduConfigType CanIfTxPduConfigData[] =
        #endif\r
          .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
          .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation, // NULL\r
-         .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on controller A,\r
+         .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on channel 0,\r
          .PduIdRef = NULL,\r
        },\r
 };\r
@@ -159,7 +164,7 @@ const CanIf_RxPduConfigType CanIfRxPduConfigData[] =
     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR, // CANIF_USER_TYPE_CAN_SPECIAL, // Changed by Mattias to test PDU router and Com layer.\r
     .CanIfUserRxIndication = NULL, // No indication\r
-    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], // Received on controller A\r
+    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], // Received on channel 0,\r
     .PduIdRef = NULL, // Could be used by upper layers\r
     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, // Not enabled in HRH\r
     .CanIfCanRxPduCanIdMask = 0xFFF,\r
@@ -177,7 +182,7 @@ const CanIf_RxPduConfigType CanIfRxPduConfigData[] =
     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29, //\r
     .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR, // CANIF_USER_TYPE_CAN_SPECIAL,\r
     .CanIfUserRxIndication = NULL, // No indication\r
-    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], //&CanIfHrhConfigData[1], // Received on controller C\r
+    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], //&CanIfHrhConfigData[1], // Received on channel 0,\r
     .PduIdRef = NULL, //\r
     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, // Not enabled in HRH\r
     .CanIfCanRxPduCanIdMask = 0xFFF,\r
@@ -192,7 +197,7 @@ const CanIf_InitHohConfigType CanIfHohConfigData[] =
     .CanConfigSet = &CanConfigSetData,\r
     .CanIfHrhConfig = CanIfHrhConfigData,\r
     .CanIfHthConfig = CanIfHthConfigData,\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -218,6 +223,7 @@ CanIf_ConfigType CanIf_Config =
   .ControllerConfig = CanIfControllerConfig,\r
   .DispatchConfig = &CanIfDispatchConfig,\r
   .InitConfig = &CanIfInitConfig,\r
-  .TransceiverConfig = NULL, // Not used\r
+  .TransceiverConfig = NULL, // Not used
+  .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap,\r
 };\r
 \r
index bcfccfc61939eb69b2d70139fdc84246e6477018..1307e6a9f2b5fdc8770725a2091e1cec0722242a 100644 (file)
 #define CANIF_CFG_H_\r
 \r
 #include "Can.h"\r
+
+// Identifiers for the elements in CanIfControllerConfig[]
+// This is the ConfigurationIndex in CanIf_InitController()
+typedef enum {
+       CANIF_CHANNEL_0_CONFIG_0 = 0,
+
+       CANIF_CHANNEL_1_CONFIG_0 = 1,
+
+       CANIF_CHANNEL_CONFIGURATION_CNT
+} CanIf_Arc_ConfigurationIndexType;
+
+typedef enum {
+       CANIF_CHANNEL_0,
+       CANIF_CHANNEL_1,
+       CANIF_CHANNEL_CNT,
+} CanIf_Arc_ChannelIdType;
 \r
 typedef enum {\r
        CANIF_SOFTFILTER_TYPE_BINARY = 0,  // Not supported\r
@@ -76,7 +92,7 @@ typedef struct {
        void (*RxIndication)(void *); //(const Can_PduType *);\r
        void (*ControllerBusOff)(uint8);\r
        void (*ControllerWakeup)(uint8);\r
-       void (*EcoreError)(uint8,uint32);\r
+       void (*Arc_Error)(uint8,uint32);\r
 } CanIf_CallbackType;\r
 \r
 \r
@@ -107,7 +123,7 @@ typedef struct {
 typedef struct {\r
        //      Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
        //      configured, software filtering is enabled.\r
-  Can_EcoreHohType CanIfHrhType;\r
+  Can_Arc_HohType CanIfHrhType;\r
 \r
        //      Selects the hardware receive objects by using the HRH range/list from\r
        //      CAN Driver configuration to define, for which HRH a software filtering has\r
@@ -117,20 +133,20 @@ typedef struct {
 \r
        //      Reference to controller Id to which the HRH belongs to. A controller can\r
        //      contain one or more HRHs.\r
-       uint8 CanIfCanControllerHrhIdRef;\r
+       CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
 \r
        //      The parameter refers to a particular HRH object in the CAN Driver Module\r
        //      configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
        //      are defined in the CAN Driver Module and hence it is derived from CAN\r
        //      Driver Configuration.\r
-       Can_EcoreHRHType CanIfHrhIdSymRef ;\r
+       Can_Arc_HRHType CanIfHrhIdSymRef ;\r
 \r
        //      Defines the parameters required for configuraing multiple\r
        //      CANID ranges for a given same HRH.\r
        const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_HrhConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -140,20 +156,20 @@ typedef struct {
 \r
 typedef struct {\r
   //  Defines the HTH type i.e, whether its a BasicCan or FullCan.\r
-  Can_EcoreHohType CanIfHthType;\r
+  Can_Arc_HohType CanIfHthType;\r
 \r
   // Reference to controller Id to which the HTH belongs to. A controller\r
   // can contain one or more HTHs\r
-  uint8 CanIfCanControllerIdRef;\r
+  CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
 \r
   //  The parameter refers to a particular HTH object in the CAN Driver Module\r
   //  configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
   //  are defined in the CAN Driver Module and hence it is derived from CAN\r
   //  Driver Configuration.\r
-  Can_EcoreHTHType CanIfHthIdSymRef ;\r
+  Can_Arc_HTHType CanIfHthIdSymRef ;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_HthConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -173,7 +189,7 @@ typedef struct {
   const CanIf_HthConfigType *CanIfHthConfig;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_InitHohConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -301,7 +317,7 @@ typedef struct {
 \r
        // Acceptance filters, 1 - care, 0 - don't care.\r
        // Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
-       // Ecore exension\r
+       // ArcCore exension\r
        uint32 CanIfCanRxPduCanIdMask;\r
 \r
 } CanIf_RxPduConfigType;\r
@@ -322,8 +338,9 @@ typedef enum {
 // This is the type supplied to CanIf_InitController()\r
 typedef struct {\r
        CanIf_WakeupSupportType WakeupSupport;  // Not used\r
-\r
-       CanControllerIdType CanIfControllerIdRef;\r
+
+       // CanIf-specific id of the controller\r
+       CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
 \r
        const char CanIfDriverNameRef[8]; // Not used\r
 \r
@@ -366,8 +383,8 @@ typedef struct {
        //  Multiplicity: 0..1\r
        void (*CanIfWakeupValidNotification)();\r
 \r
-       // Ecore ext.\r
-       void (*CanIfErrorNotificaton)(uint8,Can_EcoreErrorType);\r
+       // ArcCore ext.\r
+       void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
 \r
 } CanIf_DispatchConfigType;\r
 \r
@@ -430,7 +447,10 @@ typedef struct {
        //      addressed CAN transceivers by each underlying CAN\r
        //      Transceiver Driver.\r
        //  Multiplicity: 1..*\r
-       const CanIf_TransceiverConfigType *TransceiverConfig;\r
+       const CanIf_TransceiverConfigType *TransceiverConfig;
+
+       // ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers
+       const CanControllerIdType                       *Arc_ChannelToControllerMap;\r
 } CanIf_ConfigType;\r
 \r
 \r
index 93391d6b05d0851610fd53946cdb7dfadb6d1b90..dc1da51a8fe898cc6897dfc7e440083eadd295e0 100644 (file)
@@ -24,7 +24,7 @@
 #define CAN_CFG_H_\r
 \r
 // Number of controller configs\r
-#define CAN_ECORE_CTRL_CONFIG_CNT   2\r
+#define CAN_ARC_CTRL_CONFIG_CNT   2\r
 \r
 #define CAN_DEV_ERROR_DETECT          STD_ON\r
 #define CAN_VERSION_INFO_API          STD_ON\r
@@ -73,9 +73,9 @@ typedef enum {
 } Can_ObjectTypeType;\r
 \r
 typedef enum {\r
-  CAN_ECORE_HANDLE_TYPE_BASIC,\r
-  CAN_ECORE_HANDLE_TYPE_FULL\r
-} Can_EcoreHohType;\r
+  CAN_ARC_HANDLE_TYPE_BASIC,\r
+  CAN_ARC_HANDLE_TYPE_FULL\r
+} Can_Arc_HohType;\r
 \r
 // HTH definitions\r
 // Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
@@ -83,7 +83,7 @@ typedef enum {
   CAN_HTH_A_1 = 0,\r
   CAN_HTH_C_1,\r
   NUM_OF_HTHS\r
-} Can_EcoreHTHType;\r
+} Can_Arc_HTHType;\r
 \r
 // HRH definitions\r
 // Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
@@ -91,7 +91,7 @@ typedef enum {
   CAN_HRH_A_1 = 0,\r
   CAN_HRH_C_1,\r
   NUM_OF_HRHS\r
-} Can_EcoreHRHType;\r
+} Can_Arc_HRHType;\r
 \r
 // Non-standard type\r
 typedef struct {\r
@@ -100,7 +100,7 @@ typedef struct {
   void (*ControllerBusOff)(uint8);\r
   void (*TxConfirmation)(PduIdType);\r
   void (*ControllerWakeup)(uint8);\r
-  void (*EcoreError)(uint8,Can_EcoreErrorType);\r
+  void (*Arc_Error)(uint8,Can_Arc_ErrorType);\r
 } Can_CallbackType;\r
 \r
 /*\r
@@ -151,7 +151,7 @@ typedef uint32 Can_FilterMaskType;
 //Objects.\r
 typedef struct Can_HardwareObjectStruct {\r
   // Specifies the type (Full-CAN or Basic-CAN) of a hardware object.\r
-  Can_EcoreHohType CanHandleType;\r
+  Can_Arc_HohType CanHandleType;\r
 \r
   // Specifies whether the IdValue is of type - standard identifier - extended\r
   // identifier - mixed mode ImplementationType: Can_IdType\r
@@ -176,10 +176,10 @@ typedef struct Can_HardwareObjectStruct {
 \r
   // A "1" in this mask tells the driver that that HW Message Box should be\r
   // occupied by this Hoh. A "1" in bit 31(ppc) occupies Mb 0 in HW.\r
-  uint32 CanEcoreMbMask;\r
+  uint32 Can_Arc_MbMask;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanEcoreEOL;\r
+  boolean Can_Arc_EOL;\r
 \r
 } Can_HardwareObjectType;\r
 \r
@@ -188,16 +188,16 @@ typedef struct Can_HardwareObjectStruct {
  * CanController container\r
  */\r
 typedef enum {\r
-  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-  CAN_ECORE_PROCESS_TYPE_POLLING,\r
-} Can_EcoreProcessType;\r
+  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+  CAN_ARC_PROCESS_TYPE_POLLING,\r
+} Can_Arc_ProcessType;\r
 \r
 typedef struct {\r
 \r
   //  Enables / disables API Can_MainFunction_BusOff() for handling busoff\r
   //  events in polling mode.\r
   // INTERRUPT or POLLING\r
-  Can_EcoreProcessType CanBusOffProcessing;\r
+  Can_Arc_ProcessType CanBusOffProcessing;\r
 \r
   // Defines if a CAN controller is used in the configuration.\r
   boolean CanControllerActivation;\r
@@ -226,15 +226,15 @@ typedef struct {
 \r
   //  Enables / disables API Can_MainFunction_Read() for handling PDU\r
   //  reception events in polling mode.\r
-  Can_EcoreProcessType CanRxProcessing;\r
+  Can_Arc_ProcessType CanRxProcessing;\r
 \r
   //  Enables / disables API Can_MainFunction_Write() for handling PDU\r
   //  transmission events in polling mode.\r
-  Can_EcoreProcessType CanTxProcessing;\r
+  Can_Arc_ProcessType CanTxProcessing;\r
 \r
   //  Enables / disables API Can_MainFunction_Wakeup() for handling wakeup\r
   //  events in polling mode.\r
-  Can_EcoreProcessType CanWakeupProcessing;\r
+  Can_Arc_ProcessType CanWakeupProcessing;\r
 \r
   //  Reference to the CPU clock configuration, which is set in the MCU driver\r
   //  configuration\r
@@ -246,16 +246,16 @@ typedef struct {
   uint32 CanWakeupSourceRef;\r
 \r
   //\r
-  // Ecore stuff\r
+  // ArcCore stuff\r
   //\r
 \r
   // List of Hoh id's that belong to this controller\r
-  const Can_HardwareObjectType  *CanEcoreHoh;\r
+  const Can_HardwareObjectType  *Can_Arc_Hoh;\r
 \r
-  boolean CanEcoreLoopback;\r
+  boolean Can_Arc_Loopback;\r
 \r
   // Set this to use the fifo\r
-  boolean CanEcoreFifo;\r
+  boolean Can_Arc_Fifo;\r
 \r
 } Can_ControllerConfigType;\r
 \r
index 10d935188e6b774832f854fc084db4abfc4771a2..242c82608e9caf183e16f564188d77b403e46ec0 100644 (file)
@@ -52,24 +52,24 @@ Can_FilterMaskType Can_FilterMaskConfigData = 0;
 const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_A[] =\r
 {\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_EXTENDED,\r
     .CanObjectType =    CAN_OBJECT_TYPE_RECEIVE,\r
     .CanObjectId =      CAN_HRH_A_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask = 0x00ff0000,\r
-    .CanEcoreEOL = 0,\r
+    // ArcCore\r
+    .Can_Arc_MbMask = 0x00ff0000,\r
+    .Can_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_EXTENDED,\r
     .CanObjectType =    CAN_OBJECT_TYPE_TRANSMIT,\r
     .CanObjectId =      CAN_HTH_A_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0xff000000,\r
-    .CanEcoreEOL = 1,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0xff000000,\r
+    .Can_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -77,24 +77,24 @@ const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_A[] =
 const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_C[] =\r
 {\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_STANDARD,\r
     .CanObjectType =    CAN_OBJECT_TYPE_RECEIVE,\r
     .CanObjectId =      CAN_HRH_C_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0x00ff0000,\r
-    .CanEcoreEOL = 0,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0x00ff0000,\r
+    .Can_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_STANDARD,\r
     .CanObjectType =    CAN_OBJECT_TYPE_TRANSMIT,\r
     .CanObjectId =      CAN_HTH_C_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0xff000000,\r
-    .CanEcoreEOL = 1,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0xff000000,\r
+    .Can_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -110,15 +110,15 @@ const Can_ControllerConfigType CanControllerConfigData[] =
     .CanControllerPropSeg = 4,\r
     .CanControllerSeg1 =    4,\r
     .CanControllerSeg2 =    4,\r
-    .CanBusOffProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanRxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanTxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanWakeupProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
+    .CanBusOffProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
     .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_A,\r
-    // Ecore\r
-    .CanEcoreHoh = &CanHardwareObjectConfig_CTRL_A[0],\r
-    .CanEcoreLoopback = 0,\r
-    .CanEcoreFifo = 0,\r
+    // ArcCore\r
+    .Can_Arc_Hoh = &CanHardwareObjectConfig_CTRL_A[0],\r
+    .Can_Arc_Loopback = 0,\r
+    .Can_Arc_Fifo = 0,\r
 \r
   },{\r
     .CanControllerActivation = TRUE,\r
@@ -127,15 +127,15 @@ const Can_ControllerConfigType CanControllerConfigData[] =
     .CanControllerPropSeg = 4,\r
     .CanControllerSeg1 =    4,\r
     .CanControllerSeg2 =    4,\r
-    .CanBusOffProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanRxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanTxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanWakeupProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
+    .CanBusOffProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
     .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_C,\r
-    // Ecore\r
-    .CanEcoreHoh = &CanHardwareObjectConfig_CTRL_C[0],\r
-    .CanEcoreLoopback = 1,\r
-    .CanEcoreFifo = 0,\r
+    // ArcCore\r
+    .Can_Arc_Hoh = &CanHardwareObjectConfig_CTRL_C[0],\r
+    .Can_Arc_Loopback = 1,\r
+    .Can_Arc_Fifo = 0,\r
   }\r
 };\r
 \r
@@ -148,7 +148,7 @@ const Can_CallbackType CanCallbackConfigData = {
     CanIf_ControllerBusOff,\r
     CanIf_TxConfirmation,\r
     NULL, //CanIf_ControllerWakeup,\r
-    CanIf_EcoreError,\r
+    CanIf_Arc_Error,\r
 };\r
 \r
 /* Configset configuration information\r
index 3b50632fe875f7230929eb008c19bff9835da45c..33eae746cd37be07a5f5ce691f5d2ad04046bcff 100644 (file)
@@ -50,7 +50,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -80,7 +80,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -110,7 +110,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -140,7 +140,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -174,7 +174,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -204,7 +204,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -234,7 +234,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -264,7 +264,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -296,7 +296,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -326,7 +326,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -356,7 +356,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -386,7 +386,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -418,7 +418,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -448,7 +448,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -478,7 +478,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -508,7 +508,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -520,7 +520,7 @@ ComSignal_type PCAN_ComSignal[] = {
                }\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -530,7 +530,7 @@ ComIPduGroup_type PCAN_ComIPduGroup[] = {
                .ComIPduGroupHandleId = 0\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -633,7 +633,7 @@ ComIPdu_type PCAN_ComIPdu[] = {
        },\r
 \r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -687,7 +687,7 @@ ComSignal_type HardwareTest_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 16,\r
-               .ComSignalEcoreUseUpdateBit = 1,\r
+               .ComSignalArcUseUpdateBit = 1,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -717,7 +717,7 @@ ComSignal_type HardwareTest_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 16,\r
-               .ComSignalEcoreUseUpdateBit = 1,\r
+               .ComSignalArcUseUpdateBit = 1,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -749,8 +749,8 @@ ComSignal_type HardwareTest_ComSignal[] = {
                //.ComTimeoutNotification = NULL,\r
                //.ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 42,\r
-               .ComSignalEcoreUseUpdateBit = 1,\r
-               .ComEcoreIsSignalGroup = 1,\r
+               .ComSignalArcUseUpdateBit = 1,\r
+               .Com_Arc_IsSignalGroup = 1,\r
                .ComGroupSignal = {\r
                        &HardwareTest_ComGroupSignal[0],\r
                        &HardwareTest_ComGroupSignal[1],\r
@@ -766,7 +766,7 @@ ComSignal_type HardwareTest_ComSignal[] = {
                }*/\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -782,7 +782,7 @@ ComIPduGroup_type HardwareTest_ComIPduGroup[] = {
                .ComIPduGroupHandleId = 2\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -848,7 +848,7 @@ ComIPdu_type HardwareTest_ComIPdu[] = {
                },\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
index 7f1a13e202395d42ce2e1641f1d57b41992bafa3..460c0d8312d756c1f8b9195c093a4040a9c52ea2 100644 (file)
@@ -20,8 +20,8 @@
 
 
 
-#include "Mcu_Cfg.h"\r
-#include "Lin_Cfg.h"\r
+#include "Mcu.h"\r
+#include "Lin.h"\r
 \r
 const Lin_ChannelConfigType LinChannelConfigData[] = {\r
        {\r
index 06622968fb32a0fde995e61a4f0bd5b4bdbbdc29..a75c36c1ad1da8d51edaa2d06f99f28c472de675 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef MCU_CFG_C_\r
 #define MCU_CFG_C_\r
 \r
-#include "Mcu_Cfg.h"\r
+#include "Mcu.h"\r
 \r
 Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
   {\r
index be0710cb95a4a52a9916f0a8a65015dab2434d2c..e46a25ee6193847cf123d8ed19605f1a8a4faa08 100644 (file)
@@ -23,9 +23,9 @@
 #ifndef SPI_CFG_H_
 #define SPI_CFG_H_
 
-#include "Dma_Cfg.h"
+#include "Dma.h"
 #include "mpc55xx.h"
-#include "Mcu_Cfg.h"
+#include "Mcu.h"
 
 #define DSPI_CTRL_A    0
 #define DSPI_CTRL_B    1
@@ -182,9 +182,9 @@ typedef enum
 
 typedef enum
 {
-  SPI_ECORE_TRANSFER_START_LSB,
-  SPI_ECORE_TRANSFER_START_MSB,
-} Spi_EcoreTransferStartType;
+  SPI_ARC_TRANSFER_START_LSB,
+  SPI_ARC_TRANSFER_START_MSB,
+} Spi_Arc_TransferStartType;
 
 
 typedef enum {
@@ -217,7 +217,7 @@ typedef struct
   Spi_NumberOfDataType SpiIbNBuffers;
 
   // This parameter defines the first starting bit for transmission.
-  Spi_EcoreTransferStartType SpiTransferStart;
+  Spi_Arc_TransferStartType SpiTransferStart;
 
   //
   _Bool SpiDmaNoIncreaseSrc;
@@ -289,7 +289,7 @@ typedef struct
   // Timing between PCS and first edge of SCK. Unit ns.
   uint32 SpiTimeCs2Clk;
 
-  // Ecore extension...
+  // ArcCore extension...
   // The controller ID(0..3)
   //uint32 SpiControllerId;
 
index bcfccfc61939eb69b2d70139fdc84246e6477018..74c7da3b01908959c197d5be74265f9793cb5bf6 100644 (file)
 #define CANIF_CFG_H_\r
 \r
 #include "Can.h"\r
+
+// Identifiers for the elements in CanIfControllerConfig[]
+// This is the ConfigurationIndex in CanIf_InitController()
+typedef enum {
+       CANIF_CHANNEL_0_CONFIG_0 = 0,
+
+       CANIF_CHANNEL_1_CONFIG_0 = 1,
+
+       CANIF_CHANNEL_CONFIGURATION_CNT
+} CanIf_Arc_ConfigurationIndexType;
+
+typedef enum {
+       CANIF_CHANNEL_0,
+       CANIF_CHANNEL_1,
+       CANIF_CHANNEL_CNT,
+} CanIf_Arc_ChannelIdType;
 \r
 typedef enum {\r
        CANIF_SOFTFILTER_TYPE_BINARY = 0,  // Not supported\r
@@ -76,7 +92,7 @@ typedef struct {
        void (*RxIndication)(void *); //(const Can_PduType *);\r
        void (*ControllerBusOff)(uint8);\r
        void (*ControllerWakeup)(uint8);\r
-       void (*EcoreError)(uint8,uint32);\r
+       void (*Arc_Error)(uint8,uint32);\r
 } CanIf_CallbackType;\r
 \r
 \r
@@ -107,7 +123,7 @@ typedef struct {
 typedef struct {\r
        //      Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
        //      configured, software filtering is enabled.\r
-  Can_EcoreHohType CanIfHrhType;\r
+  Can_Arc_HohType CanIfHrhType;\r
 \r
        //      Selects the hardware receive objects by using the HRH range/list from\r
        //      CAN Driver configuration to define, for which HRH a software filtering has\r
@@ -117,20 +133,20 @@ typedef struct {
 \r
        //      Reference to controller Id to which the HRH belongs to. A controller can\r
        //      contain one or more HRHs.\r
-       uint8 CanIfCanControllerHrhIdRef;\r
+       CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
 \r
        //      The parameter refers to a particular HRH object in the CAN Driver Module\r
        //      configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
        //      are defined in the CAN Driver Module and hence it is derived from CAN\r
        //      Driver Configuration.\r
-       Can_EcoreHRHType CanIfHrhIdSymRef ;\r
+       Can_Arc_HRHType CanIfHrhIdSymRef ;\r
 \r
        //      Defines the parameters required for configuraing multiple\r
        //      CANID ranges for a given same HRH.\r
        const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_HrhConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -140,20 +156,20 @@ typedef struct {
 \r
 typedef struct {\r
   //  Defines the HTH type i.e, whether its a BasicCan or FullCan.\r
-  Can_EcoreHohType CanIfHthType;\r
+  Can_Arc_HohType CanIfHthType;\r
 \r
   // Reference to controller Id to which the HTH belongs to. A controller\r
   // can contain one or more HTHs\r
-  uint8 CanIfCanControllerIdRef;\r
+  CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
 \r
   //  The parameter refers to a particular HTH object in the CAN Driver Module\r
   //  configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
   //  are defined in the CAN Driver Module and hence it is derived from CAN\r
   //  Driver Configuration.\r
-  Can_EcoreHTHType CanIfHthIdSymRef ;\r
+  Can_Arc_HTHType CanIfHthIdSymRef ;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_HthConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -173,7 +189,7 @@ typedef struct {
   const CanIf_HthConfigType *CanIfHthConfig;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_InitHohConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -301,7 +317,7 @@ typedef struct {
 \r
        // Acceptance filters, 1 - care, 0 - don't care.\r
        // Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
-       // Ecore exension\r
+       // ArcCore exension\r
        uint32 CanIfCanRxPduCanIdMask;\r
 \r
 } CanIf_RxPduConfigType;\r
@@ -322,8 +338,9 @@ typedef enum {
 // This is the type supplied to CanIf_InitController()\r
 typedef struct {\r
        CanIf_WakeupSupportType WakeupSupport;  // Not used\r
-\r
-       CanControllerIdType CanIfControllerIdRef;\r
+
+       // CanIf-specific id of the controller
+       CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
 \r
        const char CanIfDriverNameRef[8]; // Not used\r
 \r
@@ -366,8 +383,8 @@ typedef struct {
        //  Multiplicity: 0..1\r
        void (*CanIfWakeupValidNotification)();\r
 \r
-       // Ecore ext.\r
-       void (*CanIfErrorNotificaton)(uint8,Can_EcoreErrorType);\r
+       // ArcCore ext.\r
+       void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
 \r
 } CanIf_DispatchConfigType;\r
 \r
@@ -430,7 +447,10 @@ typedef struct {
        //      addressed CAN transceivers by each underlying CAN\r
        //      Transceiver Driver.\r
        //  Multiplicity: 1..*\r
-       const CanIf_TransceiverConfigType *TransceiverConfig;\r
+       const CanIf_TransceiverConfigType *TransceiverConfig;
+
+       // ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers
+       const CanControllerIdType                       *Arc_ChannelToControllerMap;\r
 } CanIf_ConfigType;\r
 \r
 \r
index 93391d6b05d0851610fd53946cdb7dfadb6d1b90..dc1da51a8fe898cc6897dfc7e440083eadd295e0 100644 (file)
@@ -24,7 +24,7 @@
 #define CAN_CFG_H_\r
 \r
 // Number of controller configs\r
-#define CAN_ECORE_CTRL_CONFIG_CNT   2\r
+#define CAN_ARC_CTRL_CONFIG_CNT   2\r
 \r
 #define CAN_DEV_ERROR_DETECT          STD_ON\r
 #define CAN_VERSION_INFO_API          STD_ON\r
@@ -73,9 +73,9 @@ typedef enum {
 } Can_ObjectTypeType;\r
 \r
 typedef enum {\r
-  CAN_ECORE_HANDLE_TYPE_BASIC,\r
-  CAN_ECORE_HANDLE_TYPE_FULL\r
-} Can_EcoreHohType;\r
+  CAN_ARC_HANDLE_TYPE_BASIC,\r
+  CAN_ARC_HANDLE_TYPE_FULL\r
+} Can_Arc_HohType;\r
 \r
 // HTH definitions\r
 // Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
@@ -83,7 +83,7 @@ typedef enum {
   CAN_HTH_A_1 = 0,\r
   CAN_HTH_C_1,\r
   NUM_OF_HTHS\r
-} Can_EcoreHTHType;\r
+} Can_Arc_HTHType;\r
 \r
 // HRH definitions\r
 // Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
@@ -91,7 +91,7 @@ typedef enum {
   CAN_HRH_A_1 = 0,\r
   CAN_HRH_C_1,\r
   NUM_OF_HRHS\r
-} Can_EcoreHRHType;\r
+} Can_Arc_HRHType;\r
 \r
 // Non-standard type\r
 typedef struct {\r
@@ -100,7 +100,7 @@ typedef struct {
   void (*ControllerBusOff)(uint8);\r
   void (*TxConfirmation)(PduIdType);\r
   void (*ControllerWakeup)(uint8);\r
-  void (*EcoreError)(uint8,Can_EcoreErrorType);\r
+  void (*Arc_Error)(uint8,Can_Arc_ErrorType);\r
 } Can_CallbackType;\r
 \r
 /*\r
@@ -151,7 +151,7 @@ typedef uint32 Can_FilterMaskType;
 //Objects.\r
 typedef struct Can_HardwareObjectStruct {\r
   // Specifies the type (Full-CAN or Basic-CAN) of a hardware object.\r
-  Can_EcoreHohType CanHandleType;\r
+  Can_Arc_HohType CanHandleType;\r
 \r
   // Specifies whether the IdValue is of type - standard identifier - extended\r
   // identifier - mixed mode ImplementationType: Can_IdType\r
@@ -176,10 +176,10 @@ typedef struct Can_HardwareObjectStruct {
 \r
   // A "1" in this mask tells the driver that that HW Message Box should be\r
   // occupied by this Hoh. A "1" in bit 31(ppc) occupies Mb 0 in HW.\r
-  uint32 CanEcoreMbMask;\r
+  uint32 Can_Arc_MbMask;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanEcoreEOL;\r
+  boolean Can_Arc_EOL;\r
 \r
 } Can_HardwareObjectType;\r
 \r
@@ -188,16 +188,16 @@ typedef struct Can_HardwareObjectStruct {
  * CanController container\r
  */\r
 typedef enum {\r
-  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-  CAN_ECORE_PROCESS_TYPE_POLLING,\r
-} Can_EcoreProcessType;\r
+  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+  CAN_ARC_PROCESS_TYPE_POLLING,\r
+} Can_Arc_ProcessType;\r
 \r
 typedef struct {\r
 \r
   //  Enables / disables API Can_MainFunction_BusOff() for handling busoff\r
   //  events in polling mode.\r
   // INTERRUPT or POLLING\r
-  Can_EcoreProcessType CanBusOffProcessing;\r
+  Can_Arc_ProcessType CanBusOffProcessing;\r
 \r
   // Defines if a CAN controller is used in the configuration.\r
   boolean CanControllerActivation;\r
@@ -226,15 +226,15 @@ typedef struct {
 \r
   //  Enables / disables API Can_MainFunction_Read() for handling PDU\r
   //  reception events in polling mode.\r
-  Can_EcoreProcessType CanRxProcessing;\r
+  Can_Arc_ProcessType CanRxProcessing;\r
 \r
   //  Enables / disables API Can_MainFunction_Write() for handling PDU\r
   //  transmission events in polling mode.\r
-  Can_EcoreProcessType CanTxProcessing;\r
+  Can_Arc_ProcessType CanTxProcessing;\r
 \r
   //  Enables / disables API Can_MainFunction_Wakeup() for handling wakeup\r
   //  events in polling mode.\r
-  Can_EcoreProcessType CanWakeupProcessing;\r
+  Can_Arc_ProcessType CanWakeupProcessing;\r
 \r
   //  Reference to the CPU clock configuration, which is set in the MCU driver\r
   //  configuration\r
@@ -246,16 +246,16 @@ typedef struct {
   uint32 CanWakeupSourceRef;\r
 \r
   //\r
-  // Ecore stuff\r
+  // ArcCore stuff\r
   //\r
 \r
   // List of Hoh id's that belong to this controller\r
-  const Can_HardwareObjectType  *CanEcoreHoh;\r
+  const Can_HardwareObjectType  *Can_Arc_Hoh;\r
 \r
-  boolean CanEcoreLoopback;\r
+  boolean Can_Arc_Loopback;\r
 \r
   // Set this to use the fifo\r
-  boolean CanEcoreFifo;\r
+  boolean Can_Arc_Fifo;\r
 \r
 } Can_ControllerConfigType;\r
 \r
index 10d935188e6b774832f854fc084db4abfc4771a2..242c82608e9caf183e16f564188d77b403e46ec0 100644 (file)
@@ -52,24 +52,24 @@ Can_FilterMaskType Can_FilterMaskConfigData = 0;
 const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_A[] =\r
 {\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_EXTENDED,\r
     .CanObjectType =    CAN_OBJECT_TYPE_RECEIVE,\r
     .CanObjectId =      CAN_HRH_A_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask = 0x00ff0000,\r
-    .CanEcoreEOL = 0,\r
+    // ArcCore\r
+    .Can_Arc_MbMask = 0x00ff0000,\r
+    .Can_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_EXTENDED,\r
     .CanObjectType =    CAN_OBJECT_TYPE_TRANSMIT,\r
     .CanObjectId =      CAN_HTH_A_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0xff000000,\r
-    .CanEcoreEOL = 1,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0xff000000,\r
+    .Can_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -77,24 +77,24 @@ const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_A[] =
 const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_C[] =\r
 {\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_STANDARD,\r
     .CanObjectType =    CAN_OBJECT_TYPE_RECEIVE,\r
     .CanObjectId =      CAN_HRH_C_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0x00ff0000,\r
-    .CanEcoreEOL = 0,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0x00ff0000,\r
+    .Can_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_STANDARD,\r
     .CanObjectType =    CAN_OBJECT_TYPE_TRANSMIT,\r
     .CanObjectId =      CAN_HTH_C_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0xff000000,\r
-    .CanEcoreEOL = 1,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0xff000000,\r
+    .Can_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -110,15 +110,15 @@ const Can_ControllerConfigType CanControllerConfigData[] =
     .CanControllerPropSeg = 4,\r
     .CanControllerSeg1 =    4,\r
     .CanControllerSeg2 =    4,\r
-    .CanBusOffProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanRxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanTxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanWakeupProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
+    .CanBusOffProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
     .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_A,\r
-    // Ecore\r
-    .CanEcoreHoh = &CanHardwareObjectConfig_CTRL_A[0],\r
-    .CanEcoreLoopback = 0,\r
-    .CanEcoreFifo = 0,\r
+    // ArcCore\r
+    .Can_Arc_Hoh = &CanHardwareObjectConfig_CTRL_A[0],\r
+    .Can_Arc_Loopback = 0,\r
+    .Can_Arc_Fifo = 0,\r
 \r
   },{\r
     .CanControllerActivation = TRUE,\r
@@ -127,15 +127,15 @@ const Can_ControllerConfigType CanControllerConfigData[] =
     .CanControllerPropSeg = 4,\r
     .CanControllerSeg1 =    4,\r
     .CanControllerSeg2 =    4,\r
-    .CanBusOffProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanRxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanTxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanWakeupProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
+    .CanBusOffProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
     .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_C,\r
-    // Ecore\r
-    .CanEcoreHoh = &CanHardwareObjectConfig_CTRL_C[0],\r
-    .CanEcoreLoopback = 1,\r
-    .CanEcoreFifo = 0,\r
+    // ArcCore\r
+    .Can_Arc_Hoh = &CanHardwareObjectConfig_CTRL_C[0],\r
+    .Can_Arc_Loopback = 1,\r
+    .Can_Arc_Fifo = 0,\r
   }\r
 };\r
 \r
@@ -148,7 +148,7 @@ const Can_CallbackType CanCallbackConfigData = {
     CanIf_ControllerBusOff,\r
     CanIf_TxConfirmation,\r
     NULL, //CanIf_ControllerWakeup,\r
-    CanIf_EcoreError,\r
+    CanIf_Arc_Error,\r
 };\r
 \r
 /* Configset configuration information\r
index d42811528829d0c3cb0883174566bf6926bf9474..a4044dede3a9103b948276fd0378994488973ae3 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef MCU_CFG_C_\r
 #define MCU_CFG_C_\r
 \r
-#include "Mcu_Cfg.h"\r
+#include "Mcu.h"\r
 \r
 Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
   {\r
index d42811528829d0c3cb0883174566bf6926bf9474..a4044dede3a9103b948276fd0378994488973ae3 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef MCU_CFG_C_\r
 #define MCU_CFG_C_\r
 \r
-#include "Mcu_Cfg.h"\r
+#include "Mcu.h"\r
 \r
 Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
   {\r
index b6c2b839517a701d090868cce968684b1524d4be..1fb08ef3339991f5b03365ae2db42f40d3218199 100644 (file)
 // Imported structs from Can_Lcfg.c\r
 extern const Can_ControllerConfigType CanControllerConfigData[];\r
 extern const Can_ConfigSetType CanConfigSetData;\r
-\r
+
+// Contains the mapping from CanIf-specific Channels to Can Controllers
+const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = {
+               CAN_CTRL_A, // CANIF_CHANNEL_0
+               CAN_CTRL_C, // CANIF_CHANNEL_1
+};
 \r
 // Container that gets slamed into CanIf_InitController()\r
 // Inits ALL controllers\r
 // Multiplicity 1..*\r
 const CanIf_ControllerConfigType CanIfControllerConfig[] =\r
 {\r
-  { // This is the ConfigurationIndex in CanIf_InitController()\r
-    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_A,\r
-    .CanIfDriverNameRef = "FLEXCAN",  // Not used\r
-    .CanIfInitControllerRef = &CanControllerConfigData[0],\r
-  },\r
-  {\r
-    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_C,\r
-    .CanIfDriverNameRef = "FLEXCAN", // Not used\r
-    .CanIfInitControllerRef = &CanControllerConfigData[1],\r
+  { // CANIF_CHANNEL_0_CONFIG_0
+    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,
+    .CanIfControllerIdRef = CANIF_CHANNEL_0,
+    .CanIfDriverNameRef = "FLEXCAN",  // Not used
+    .CanIfInitControllerRef = &CanControllerConfigData[0],
+  },
+  { // CANIF_CHANNEL_1_CONFIG_0
+    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,
+    .CanIfControllerIdRef = CANIF_CHANNEL_1,
+    .CanIfDriverNameRef = "FLEXCAN", // Not used
+    .CanIfInitControllerRef = &CanControllerConfigData[1],
   }\r
 };\r
 \r
@@ -60,16 +65,16 @@ const CanIf_DispatchConfigType CanIfDispatchConfig =
 const CanIf_HthConfigType CanIfHthConfigData[] =\r
 {\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_A,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_0,\r
     .CanIfHthIdSymRef = CAN_HTH_A_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_C,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_1,\r
     .CanIfHthIdSymRef = CAN_HTH_C_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -77,18 +82,18 @@ const CanIf_HthConfigType CanIfHthConfigData[] =
 const CanIf_HrhConfigType CanIfHrhConfigData[] =\r
 {\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_A,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_0,\r
     .CanIfHrhIdSymRef = CAN_HRH_A_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_C,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_1,\r
     .CanIfHrhIdSymRef = CAN_HRH_C_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 //-------------------------------------------------------------------\r
@@ -108,7 +113,7 @@ const CanIf_TxPduConfigType CanIfTxPduConfigData[] =
 #endif\r
     .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation, //NULL,\r
-    .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on controller A,\r
+    .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on channel 0,\r
     .PduIdRef = NULL,\r
   },\r
   {\r
@@ -121,7 +126,7 @@ const CanIf_TxPduConfigType CanIfTxPduConfigData[] =
 #endif\r
     .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfUserTxConfirmation = NULL,\r
-    .CanIfCanTxPduHthRef = &CanIfHthConfigData[1], // Send on controller C,\r
+    .CanIfCanTxPduHthRef = &CanIfHthConfigData[1], // Send on  channel 1,\r
     .PduIdRef = NULL,\r
   },\r
   //Added by mattias\r
@@ -135,7 +140,7 @@ const CanIf_TxPduConfigType CanIfTxPduConfigData[] =
        #endif\r
          .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
          .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation, // NULL\r
-         .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on controller A,\r
+         .CanIfCanTxPduHthRef = &CanIfHthConfigData[0], // Send on  channel 0,\r
          .PduIdRef = NULL,\r
        },\r
 };\r
@@ -159,7 +164,7 @@ const CanIf_RxPduConfigType CanIfRxPduConfigData[] =
     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR, // CANIF_USER_TYPE_CAN_SPECIAL, // Changed by Mattias to test PDU router and Com layer.\r
     .CanIfUserRxIndication = NULL, // No indication\r
-    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], // Received on controller A\r
+    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], // Received on  channel 0,\r
     .PduIdRef = NULL, // Could be used by upper layers\r
     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, // Not enabled in HRH\r
     .CanIfCanRxPduCanIdMask = 0xFFF,\r
@@ -177,7 +182,7 @@ const CanIf_RxPduConfigType CanIfRxPduConfigData[] =
     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29, //\r
     .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR, // CANIF_USER_TYPE_CAN_SPECIAL,\r
     .CanIfUserRxIndication = NULL, // No indication\r
-    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], //&CanIfHrhConfigData[1], // Received on controller C\r
+    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], //&CanIfHrhConfigData[1], // Received on channel 0,\r
     .PduIdRef = NULL, //\r
     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, // Not enabled in HRH\r
     .CanIfCanRxPduCanIdMask = 0xFFF,\r
@@ -192,7 +197,7 @@ const CanIf_InitHohConfigType CanIfHohConfigData[] =
     .CanConfigSet = &CanConfigSetData,\r
     .CanIfHrhConfig = CanIfHrhConfigData,\r
     .CanIfHthConfig = CanIfHthConfigData,\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -218,6 +223,7 @@ CanIf_ConfigType CanIf_Config =
   .ControllerConfig = CanIfControllerConfig,\r
   .DispatchConfig = &CanIfDispatchConfig,\r
   .InitConfig = &CanIfInitConfig,\r
-  .TransceiverConfig = NULL, // Not used\r
+  .TransceiverConfig = NULL, // Not used
+  .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap,\r
 };\r
 \r
index bcfccfc61939eb69b2d70139fdc84246e6477018..74c7da3b01908959c197d5be74265f9793cb5bf6 100644 (file)
 #define CANIF_CFG_H_\r
 \r
 #include "Can.h"\r
+
+// Identifiers for the elements in CanIfControllerConfig[]
+// This is the ConfigurationIndex in CanIf_InitController()
+typedef enum {
+       CANIF_CHANNEL_0_CONFIG_0 = 0,
+
+       CANIF_CHANNEL_1_CONFIG_0 = 1,
+
+       CANIF_CHANNEL_CONFIGURATION_CNT
+} CanIf_Arc_ConfigurationIndexType;
+
+typedef enum {
+       CANIF_CHANNEL_0,
+       CANIF_CHANNEL_1,
+       CANIF_CHANNEL_CNT,
+} CanIf_Arc_ChannelIdType;
 \r
 typedef enum {\r
        CANIF_SOFTFILTER_TYPE_BINARY = 0,  // Not supported\r
@@ -76,7 +92,7 @@ typedef struct {
        void (*RxIndication)(void *); //(const Can_PduType *);\r
        void (*ControllerBusOff)(uint8);\r
        void (*ControllerWakeup)(uint8);\r
-       void (*EcoreError)(uint8,uint32);\r
+       void (*Arc_Error)(uint8,uint32);\r
 } CanIf_CallbackType;\r
 \r
 \r
@@ -107,7 +123,7 @@ typedef struct {
 typedef struct {\r
        //      Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
        //      configured, software filtering is enabled.\r
-  Can_EcoreHohType CanIfHrhType;\r
+  Can_Arc_HohType CanIfHrhType;\r
 \r
        //      Selects the hardware receive objects by using the HRH range/list from\r
        //      CAN Driver configuration to define, for which HRH a software filtering has\r
@@ -117,20 +133,20 @@ typedef struct {
 \r
        //      Reference to controller Id to which the HRH belongs to. A controller can\r
        //      contain one or more HRHs.\r
-       uint8 CanIfCanControllerHrhIdRef;\r
+       CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
 \r
        //      The parameter refers to a particular HRH object in the CAN Driver Module\r
        //      configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
        //      are defined in the CAN Driver Module and hence it is derived from CAN\r
        //      Driver Configuration.\r
-       Can_EcoreHRHType CanIfHrhIdSymRef ;\r
+       Can_Arc_HRHType CanIfHrhIdSymRef ;\r
 \r
        //      Defines the parameters required for configuraing multiple\r
        //      CANID ranges for a given same HRH.\r
        const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_HrhConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -140,20 +156,20 @@ typedef struct {
 \r
 typedef struct {\r
   //  Defines the HTH type i.e, whether its a BasicCan or FullCan.\r
-  Can_EcoreHohType CanIfHthType;\r
+  Can_Arc_HohType CanIfHthType;\r
 \r
   // Reference to controller Id to which the HTH belongs to. A controller\r
   // can contain one or more HTHs\r
-  uint8 CanIfCanControllerIdRef;\r
+  CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
 \r
   //  The parameter refers to a particular HTH object in the CAN Driver Module\r
   //  configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
   //  are defined in the CAN Driver Module and hence it is derived from CAN\r
   //  Driver Configuration.\r
-  Can_EcoreHTHType CanIfHthIdSymRef ;\r
+  Can_Arc_HTHType CanIfHthIdSymRef ;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_HthConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -173,7 +189,7 @@ typedef struct {
   const CanIf_HthConfigType *CanIfHthConfig;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIfEcoreEOL;\r
+  boolean CanIf_Arc_EOL;\r
 } CanIf_InitHohConfigType;\r
 \r
 //-------------------------------------------------------------------\r
@@ -301,7 +317,7 @@ typedef struct {
 \r
        // Acceptance filters, 1 - care, 0 - don't care.\r
        // Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
-       // Ecore exension\r
+       // ArcCore exension\r
        uint32 CanIfCanRxPduCanIdMask;\r
 \r
 } CanIf_RxPduConfigType;\r
@@ -322,8 +338,9 @@ typedef enum {
 // This is the type supplied to CanIf_InitController()\r
 typedef struct {\r
        CanIf_WakeupSupportType WakeupSupport;  // Not used\r
-\r
-       CanControllerIdType CanIfControllerIdRef;\r
+
+       // CanIf-specific id of the controller
+       CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
 \r
        const char CanIfDriverNameRef[8]; // Not used\r
 \r
@@ -366,8 +383,8 @@ typedef struct {
        //  Multiplicity: 0..1\r
        void (*CanIfWakeupValidNotification)();\r
 \r
-       // Ecore ext.\r
-       void (*CanIfErrorNotificaton)(uint8,Can_EcoreErrorType);\r
+       // ArcCore ext.\r
+       void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
 \r
 } CanIf_DispatchConfigType;\r
 \r
@@ -430,7 +447,10 @@ typedef struct {
        //      addressed CAN transceivers by each underlying CAN\r
        //      Transceiver Driver.\r
        //  Multiplicity: 1..*\r
-       const CanIf_TransceiverConfigType *TransceiverConfig;\r
+       const CanIf_TransceiverConfigType *TransceiverConfig;
+
+       // ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers
+       const CanControllerIdType                       *Arc_ChannelToControllerMap;\r
 } CanIf_ConfigType;\r
 \r
 \r
index 2586f0ecdf673123c0d9ce904b3beb703963c92c..a8bcc8a90a33c3367a6c28baefdf4a449c045121 100644 (file)
@@ -24,7 +24,7 @@
 #define CAN_CFG_H_\r
 \r
 // Number of controller configs\r
-#define CAN_ECORE_CTRL_CONFIG_CNT   2\r
+#define CAN_ARC_CTRL_CONFIG_CNT   2\r
 \r
 #define CAN_DEV_ERROR_DETECT          STD_ON\r
 #define CAN_VERSION_INFO_API          STD_ON\r
@@ -72,9 +72,9 @@ typedef enum {
 } Can_ObjectTypeType;\r
 \r
 typedef enum {\r
-  CAN_ECORE_HANDLE_TYPE_BASIC,\r
-  CAN_ECORE_HANDLE_TYPE_FULL\r
-} Can_EcoreHohType;\r
+  CAN_ARC_HANDLE_TYPE_BASIC,\r
+  CAN_ARC_HANDLE_TYPE_FULL\r
+} Can_Arc_HohType;\r
 \r
 // HTH definitions\r
 // Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
@@ -82,7 +82,7 @@ typedef enum {
   CAN_HTH_A_1 = 0,\r
   CAN_HTH_C_1,\r
   NUM_OF_HTHS\r
-} Can_EcoreHTHType;\r
+} Can_Arc_HTHType;\r
 \r
 // HRH definitions\r
 // Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
@@ -90,7 +90,7 @@ typedef enum {
   CAN_HRH_A_1 = 0,\r
   CAN_HRH_C_1,\r
   NUM_OF_HRHS\r
-} Can_EcoreHRHType;\r
+} Can_Arc_HRHType;\r
 \r
 // Non-standard type\r
 typedef struct {\r
@@ -99,7 +99,7 @@ typedef struct {
   void (*ControllerBusOff)(uint8);\r
   void (*TxConfirmation)(PduIdType);\r
   void (*ControllerWakeup)(uint8);\r
-  void (*EcoreError)(uint8,Can_EcoreErrorType);\r
+  void (*Arc_Error)(uint8,Can_Arc_ErrorType);\r
 } Can_CallbackType;\r
 \r
 /*\r
@@ -150,7 +150,7 @@ typedef uint32 Can_FilterMaskType;
 //Objects.\r
 typedef struct Can_HardwareObjectStruct {\r
   // Specifies the type (Full-CAN or Basic-CAN) of a hardware object.\r
-  Can_EcoreHohType CanHandleType;\r
+  Can_Arc_HohType CanHandleType;\r
 \r
   // Specifies whether the IdValue is of type - standard identifier - extended\r
   // identifier - mixed mode ImplementationType: Can_IdType\r
@@ -175,10 +175,10 @@ typedef struct Can_HardwareObjectStruct {
 \r
   // A "1" in this mask tells the driver that that HW Message Box should be\r
   // occupied by this Hoh. A "1" in bit 31(ppc) occupies Mb 0 in HW.\r
-  uint32 CanEcoreMbMask;\r
+  uint32 Can_Arc_MbMask;\r
 \r
   // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanEcoreEOL;\r
+  boolean Can_Arc_EOL;\r
 \r
 } Can_HardwareObjectType;\r
 \r
@@ -187,16 +187,16 @@ typedef struct Can_HardwareObjectStruct {
  * CanController container\r
  */\r
 typedef enum {\r
-  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-  CAN_ECORE_PROCESS_TYPE_POLLING,\r
-} Can_EcoreProcessType;\r
+  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+  CAN_ARC_PROCESS_TYPE_POLLING,\r
+} Can_Arc_ProcessType;\r
 \r
 typedef struct {\r
 \r
   //  Enables / disables API Can_MainFunction_BusOff() for handling busoff\r
   //  events in polling mode.\r
   // INTERRUPT or POLLING\r
-  Can_EcoreProcessType CanBusOffProcessing;\r
+  Can_Arc_ProcessType CanBusOffProcessing;\r
 \r
   // Defines if a CAN controller is used in the configuration.\r
   boolean CanControllerActivation;\r
@@ -225,15 +225,15 @@ typedef struct {
 \r
   //  Enables / disables API Can_MainFunction_Read() for handling PDU\r
   //  reception events in polling mode.\r
-  Can_EcoreProcessType CanRxProcessing;\r
+  Can_Arc_ProcessType CanRxProcessing;\r
 \r
   //  Enables / disables API Can_MainFunction_Write() for handling PDU\r
   //  transmission events in polling mode.\r
-  Can_EcoreProcessType CanTxProcessing;\r
+  Can_Arc_ProcessType CanTxProcessing;\r
 \r
   //  Enables / disables API Can_MainFunction_Wakeup() for handling wakeup\r
   //  events in polling mode.\r
-  Can_EcoreProcessType CanWakeupProcessing;\r
+  Can_Arc_ProcessType CanWakeupProcessing;\r
 \r
   //  Reference to the CPU clock configuration, which is set in the MCU driver\r
   //  configuration\r
@@ -245,16 +245,16 @@ typedef struct {
   uint32 CanWakeupSourceRef;\r
 \r
   //\r
-  // Ecore stuff\r
+  // ArcCore stuff\r
   //\r
 \r
   // List of Hoh id's that belong to this controller\r
-  const Can_HardwareObjectType  *CanEcoreHoh;\r
+  const Can_HardwareObjectType  *Can_Arc_Hoh;\r
 \r
-  boolean CanEcoreLoopback;\r
+  boolean Can_Arc_Loopback;\r
 \r
   // Set this to use the fifo\r
-  boolean CanEcoreFifo;\r
+  boolean Can_Arc_Fifo;\r
 \r
 } Can_ControllerConfigType;\r
 \r
index 10d935188e6b774832f854fc084db4abfc4771a2..242c82608e9caf183e16f564188d77b403e46ec0 100644 (file)
@@ -52,24 +52,24 @@ Can_FilterMaskType Can_FilterMaskConfigData = 0;
 const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_A[] =\r
 {\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_EXTENDED,\r
     .CanObjectType =    CAN_OBJECT_TYPE_RECEIVE,\r
     .CanObjectId =      CAN_HRH_A_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask = 0x00ff0000,\r
-    .CanEcoreEOL = 0,\r
+    // ArcCore\r
+    .Can_Arc_MbMask = 0x00ff0000,\r
+    .Can_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_EXTENDED,\r
     .CanObjectType =    CAN_OBJECT_TYPE_TRANSMIT,\r
     .CanObjectId =      CAN_HTH_A_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0xff000000,\r
-    .CanEcoreEOL = 1,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0xff000000,\r
+    .Can_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -77,24 +77,24 @@ const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_A[] =
 const Can_HardwareObjectType CanHardwareObjectConfig_CTRL_C[] =\r
 {\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_STANDARD,\r
     .CanObjectType =    CAN_OBJECT_TYPE_RECEIVE,\r
     .CanObjectId =      CAN_HRH_C_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0x00ff0000,\r
-    .CanEcoreEOL = 0,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0x00ff0000,\r
+    .Can_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanHandleType =    CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanHandleType =    CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIdType =        CAN_ID_TYPE_STANDARD,\r
     .CanObjectType =    CAN_OBJECT_TYPE_TRANSMIT,\r
     .CanObjectId =      CAN_HTH_C_1,\r
     .CanFilterMaskRef = &Can_FilterMaskConfigData,\r
-    // Ecore\r
-    .CanEcoreMbMask =   0xff000000,\r
-    .CanEcoreEOL = 1,\r
+    // ArcCore\r
+    .Can_Arc_MbMask =   0xff000000,\r
+    .Can_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -110,15 +110,15 @@ const Can_ControllerConfigType CanControllerConfigData[] =
     .CanControllerPropSeg = 4,\r
     .CanControllerSeg1 =    4,\r
     .CanControllerSeg2 =    4,\r
-    .CanBusOffProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanRxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanTxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanWakeupProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
+    .CanBusOffProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
     .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_A,\r
-    // Ecore\r
-    .CanEcoreHoh = &CanHardwareObjectConfig_CTRL_A[0],\r
-    .CanEcoreLoopback = 0,\r
-    .CanEcoreFifo = 0,\r
+    // ArcCore\r
+    .Can_Arc_Hoh = &CanHardwareObjectConfig_CTRL_A[0],\r
+    .Can_Arc_Loopback = 0,\r
+    .Can_Arc_Fifo = 0,\r
 \r
   },{\r
     .CanControllerActivation = TRUE,\r
@@ -127,15 +127,15 @@ const Can_ControllerConfigType CanControllerConfigData[] =
     .CanControllerPropSeg = 4,\r
     .CanControllerSeg1 =    4,\r
     .CanControllerSeg2 =    4,\r
-    .CanBusOffProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanRxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanTxProcessing =      CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
-    .CanWakeupProcessing =  CAN_ECORE_PROCESS_TYPE_INTERRUPT,\r
+    .CanBusOffProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =      CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
     .CanCpuClockRef = PERIPHERAL_CLOCK_FLEXCAN_C,\r
-    // Ecore\r
-    .CanEcoreHoh = &CanHardwareObjectConfig_CTRL_C[0],\r
-    .CanEcoreLoopback = 1,\r
-    .CanEcoreFifo = 0,\r
+    // ArcCore\r
+    .Can_Arc_Hoh = &CanHardwareObjectConfig_CTRL_C[0],\r
+    .Can_Arc_Loopback = 1,\r
+    .Can_Arc_Fifo = 0,\r
   }\r
 };\r
 \r
@@ -148,7 +148,7 @@ const Can_CallbackType CanCallbackConfigData = {
     CanIf_ControllerBusOff,\r
     CanIf_TxConfirmation,\r
     NULL, //CanIf_ControllerWakeup,\r
-    CanIf_EcoreError,\r
+    CanIf_Arc_Error,\r
 };\r
 \r
 /* Configset configuration information\r
index 3b50632fe875f7230929eb008c19bff9835da45c..33eae746cd37be07a5f5ce691f5d2ad04046bcff 100644 (file)
@@ -50,7 +50,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -80,7 +80,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -110,7 +110,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -140,7 +140,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -174,7 +174,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -204,7 +204,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -234,7 +234,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -264,7 +264,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -296,7 +296,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -326,7 +326,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -356,7 +356,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -386,7 +386,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -418,7 +418,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -448,7 +448,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -478,7 +478,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -508,7 +508,7 @@ ComSignal_type PCAN_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 0,\r
-               .ComSignalEcoreUseUpdateBit = 0,\r
+               .ComSignalArcUseUpdateBit = 0,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -520,7 +520,7 @@ ComSignal_type PCAN_ComSignal[] = {
                }\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -530,7 +530,7 @@ ComIPduGroup_type PCAN_ComIPduGroup[] = {
                .ComIPduGroupHandleId = 0\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -633,7 +633,7 @@ ComIPdu_type PCAN_ComIPdu[] = {
        },\r
 \r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -687,7 +687,7 @@ ComSignal_type HardwareTest_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 16,\r
-               .ComSignalEcoreUseUpdateBit = 1,\r
+               .ComSignalArcUseUpdateBit = 1,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -717,7 +717,7 @@ ComSignal_type HardwareTest_ComSignal[] = {
                .ComTimeoutNotification = NULL,\r
                .ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 16,\r
-               .ComSignalEcoreUseUpdateBit = 1,\r
+               .ComSignalArcUseUpdateBit = 1,\r
                .ComFilter = {\r
                        .ComFilterAlgorithm = ALWAYS,\r
                        .ComFilterMask = 0,\r
@@ -749,8 +749,8 @@ ComSignal_type HardwareTest_ComSignal[] = {
                //.ComTimeoutNotification = NULL,\r
                //.ComTransferProperty = TRIGGERED,\r
                .ComUpdateBitPosition = 42,\r
-               .ComSignalEcoreUseUpdateBit = 1,\r
-               .ComEcoreIsSignalGroup = 1,\r
+               .ComSignalArcUseUpdateBit = 1,\r
+               .Com_Arc_IsSignalGroup = 1,\r
                .ComGroupSignal = {\r
                        &HardwareTest_ComGroupSignal[0],\r
                        &HardwareTest_ComGroupSignal[1],\r
@@ -766,7 +766,7 @@ ComSignal_type HardwareTest_ComSignal[] = {
                }*/\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -782,7 +782,7 @@ ComIPduGroup_type HardwareTest_ComIPduGroup[] = {
                .ComIPduGroupHandleId = 2\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -848,7 +848,7 @@ ComIPdu_type HardwareTest_ComIPdu[] = {
                },\r
        },\r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
index 7f1a13e202395d42ce2e1641f1d57b41992bafa3..460c0d8312d756c1f8b9195c093a4040a9c52ea2 100644 (file)
@@ -20,8 +20,8 @@
 
 
 
-#include "Mcu_Cfg.h"\r
-#include "Lin_Cfg.h"\r
+#include "Mcu.h"\r
+#include "Lin.h"\r
 \r
 const Lin_ChannelConfigType LinChannelConfigData[] = {\r
        {\r
index ab17f487df094d0d127b67f57015e4cd2180ddf8..4fafddaecfe9b3f8c141a927b7149b5708312952 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef MCU_CFG_C_\r
 #define MCU_CFG_C_\r
 \r
-#include "Mcu_Cfg.h"\r
+#include "Mcu.h"\r
 \r
 Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
   {\r
index 75b4c109e6451e419a9be195dc752459f13f532a..7e58ab41f0e1926c1a30ff984ccbc4dac5b22233 100644 (file)
@@ -33,7 +33,6 @@
 #define MCU_VERSION_INFO_API   STD_ON\r
 \r
 #include "Std_Types.h"\r
-#include "Mcu_Cfg.h"\r
 \r
 /* FMPLL modes( atleast in 5553/5554 ) */\r
 \r
index 6a24e528535f1a1a7c336438bfe0a48b82807d86..b9923c9d38b3ff71b612656d4874e8b70ea7f7a8 100644 (file)
@@ -23,8 +23,8 @@
 #ifndef SPI_CFG_H_
 #define SPI_CFG_H_
 
-#include "Dma_Cfg.h"
-#include "Mcu_Cfg.h"
+#include "Dma.h"
+#include "Mcu.h"
 
 #define DSPI_CTRL_A    0
 #define DSPI_CTRL_B    1
@@ -181,9 +181,9 @@ typedef enum
 
 typedef enum
 {
-  SPI_ECORE_TRANSFER_START_LSB,
-  SPI_ECORE_TRANSFER_START_MSB,
-} Spi_EcoreTransferStartType;
+  SPI_ARC_TRANSFER_START_LSB,
+  SPI_ARC_TRANSFER_START_MSB,
+} Spi_Arc_TransferStartType;
 
 
 typedef enum {
@@ -216,7 +216,7 @@ typedef struct
   Spi_NumberOfDataType SpiIbNBuffers;
 
   // This parameter defines the first starting bit for transmission.
-  Spi_EcoreTransferStartType SpiTransferStart;
+  Spi_Arc_TransferStartType SpiTransferStart;
 
   //
   _Bool SpiDmaNoIncreaseSrc;
@@ -288,7 +288,7 @@ typedef struct
   // Timing between PCS and first edge of SCK. Unit ns.
   uint32 SpiTimeCs2Clk;
 
-  // Ecore extension...
+  // ArcCore extension...
   // The controller ID(0..3)
   //uint32 SpiControllerId;
 
diff --git a/boards/mpc563xsim/build_config.mk b/boards/mpc563xsim/build_config.mk
new file mode 100644 (file)
index 0000000..363d462
--- /dev/null
@@ -0,0 +1,17 @@
+
+# ARCH defines
+ARCH=mpc55xx
+ARCH_FAM=ppc
+ARCH_MCU=mpc5633
+
+# CFG (y/n) macros
+CFG=PPC BOOKE E200Z3 MPC55XX MPC5633 BRD_MPC5633SIM SPE
+
+# What buildable modules does this board have, 
+# default or private
+MOD_AVAIL=KERNEL RAMLOG MCU WDG WDGM PORT DIO WDG WDGM T32_TERM WINIDEA_TERM PWM CAN CANIF COM ADC DMA SIMPLE_PRINTF
+
+# Needed by us
+MOD_USE=KERNEL MCU
+
+
diff --git a/boards/mpc563xsim/config/Mcu_Cfg.c b/boards/mpc563xsim/config/Mcu_Cfg.c
new file mode 100644 (file)
index 0000000..9df78ef
--- /dev/null
@@ -0,0 +1,99 @@
+/* -------------------------------- Arctic Core ------------------------------
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com
+ *
+ * Copyright (C) 2009  ArcCore AB <contact@arccore.com>
+ *
+ * This source code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ * -------------------------------- Arctic Core ------------------------------*/
+
+
+
+
+
+
+
+
+#ifndef MCU_CFG_C_\r
+#define MCU_CFG_C_\r
+\r
+#include "Mcu.h"\r
+\r
+Mcu_RamSectorSettingConfigType Mcu_RamSectorSettingConfigData[] = {\r
+  {\r
+  // This parameter shall represent the Data pre-setting to be initialized\r
+  .McuRamDefaultValue = 0,\r
+\r
+  // This parameter shall represent the MCU RAM section base address\r
+  .McuRamSectionBaseAddress = 0,\r
+\r
+  // This parameter shall represent the MCU RAM Section size\r
+  .McuRamSectionSize = 0xFF,\r
+  }\r
+};\r
+\r
+Mcu_ClockSettingConfigType Mcu_ClockSettingConfigData[] =\r
+{\r
+  {\r
+    .McuClockReferencePoint = 8000000UL,\r
+    .PllEprediv = 1,\r
+    .PllEmfd    = 104,\r
+    .PllErfd    = 5,\r
+  },\r
+  {\r
+    .McuClockReferencePoint = 40000000UL,\r
+    .PllEprediv = 3,\r
+    .PllEmfd    = 83,\r
+    .PllErfd    = 5,\r
+  }\r
+};\r
+\r
+\r
+ const Mcu_ConfigType McuConfigData[] = {\r
+  {\r
+  //  Enables/Disables clock failure notification. In case this feature is not supported\r
+  //  by HW the setting should be disabled.\r
+  .McuClockSrcFailureNotification = 0,\r
+\r
+  //  This parameter shall represent the number of Modes available for the\r
+  //  MCU. calculationFormula = Number of configured McuModeSettingConf\r
+  .McuNumberOfMcuModes = 1, /* NOT USED */\r
+\r
+  //  This parameter shall represent the number of RAM sectors available for\r
+  //  the MCU. calculationFormula = Number of configured McuRamSectorSet-\r
+  //  tingConf\r
+  .McuRamSectors = 1,\r
+\r
+  //  This parameter shall represent the number of clock setting available for\r
+  //  the MCU.\r
+  .McuClockSettings = MCU_NBR_OF_CLOCKS,\r
+\r
+  //  This parameter relates to the MCU specific reset configuration. This ap-\r
+  //  plies to the function Mcu_PerformReset, which performs a microcontroller\r
+  //  reset using the hardware feature of the microcontroller.\r
+  .McuResetSetting = 0, /* NOT USED */\r
+\r
+  //  This container contains the configuration (parameters) for the\r
+  //  Clock settings of the MCU. Please see MCU031 for more in-\r
+  //  formation on the MCU clock settings.\r
+  .McuClockSettingConfig = &Mcu_ClockSettingConfigData[0],\r
+\r
+  //  This container contains the configuration (parameters) for the\r
+  //  Mode setting of the MCU. Please see MCU035 for more infor-\r
+  //  mation on the MCU mode settings.\r
+  .McuModeSettingConfig = 0,\r
+\r
+  //  This container contains the configuration (parameters) for the\r
+  //  RAM Sector setting. Please see MCU030 for more information\r
+  //  on RAM sec-tor settings.\r
+  .McuRamSectorSettingConfig = &Mcu_RamSectorSettingConfigData[0],\r
+  },\r
+};\r
+\r
+#endif /*MCU_CFG_C_*/\r
diff --git a/boards/mpc563xsim/config/Mcu_Cfg.h b/boards/mpc563xsim/config/Mcu_Cfg.h
new file mode 100644 (file)
index 0000000..3a086b7
--- /dev/null
@@ -0,0 +1,147 @@
+/* -------------------------------- Arctic Core ------------------------------
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com
+ *
+ * Copyright (C) 2009  ArcCore AB <contact@arccore.com>
+ *
+ * This source code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ * -------------------------------- Arctic Core ------------------------------*/
+
+
+
+
+
+
+
+
+#ifndef MCU_CFG_H_\r
+#define MCU_CFG_H_\r
+\r
+#include "mpc55xx.h"\r
+\r
+#define MCU_DEV_ERROR_DETECT   STD_ON\r
+// Preprocessor switch to enable / disable the use of the function\r
+// Mcu_PerformReset()\r
+#define MCU_PERFORM_RESET_API  STD_ON\r
+\r
+#define MCU_VERSION_INFO_API   STD_ON\r
+\r
+#include "Std_Types.h"\r
+\r
+/* FMPLL modes( atleast in 5553/5554 ) */\r
+\r
+typedef enum {\r
+       MCU_FMPLL_BYPASS = 0,\r
+       MCU_FMPLL_EXTERNAL_REF,\r
+       MCU_FMPLL_EXTERNAL_REF_NO_FM,\r
+       MCU_FMPLL_DUAL_CONTROLLER_MODE,\r
+} Mcu_FMPLLmode_t;\r
+\r
+typedef enum {\r
+  MCU_CLOCKTYPE_EXT_REF_80MHZ = 0,\r
+  MCU_CLOCKTYPE_EXT_REF_66MHZ,\r
+  MCU_NBR_OF_CLOCKS,\r
+       //MCU_CLOCKTYPE_EXTERNAL_REF,\r
+       //MCU_CLOCKTYPE_EXTERNAL_REF_NO_FM,\r
+       //MCU_CLOCKTYPE_DUAL_CONTROLLER_MODE,\r
+} Mcu_ClockType;\r
+\r
+typedef struct {\r
+       // This container defines a reference point in the Mcu Clock tree\r
+       // It defines the frequency which then can be used by other modules\r
+       // as an input value. Lower multiplicity is 1, as even in the\r
+       // simplest case (only one frequency is used), there is one\r
+       // frequency to be defined.\r
+       uint32 McuClockReferencePoint;\r
+\r
+  // Phase locked loop configuration parameters for MPC551x.\r
+  uint8 PllEprediv;\r
+  uint8 PllEmfd;\r
+  uint8 PllErfd;\r
+} Mcu_ClockSettingConfigType;\r
+\r
+typedef struct {\r
+       // The parameter represents the MCU Mode settings\r
+       uint32 McuMode;\r
+} Mcu_ModeSettingConfigType;\r
+\r
+typedef struct {\r
+       // This parameter shall represent the Data pre-setting to be initialized\r
+       uint32 McuRamDefaultValue;\r
+\r
+       // This parameter shall represent the MCU RAM section base address\r
+       uint32 McuRamSectionBaseAddress;\r
+\r
+       // This parameter shall represent the MCU RAM Section size\r
+       uint32 McuRamSectionSize;\r
+\r
+} Mcu_RamSectorSettingConfigType;\r
+\r
+\r
+// This container defines a reference point in the Mcu Clock tree. It defines\r
+// the frequency which then can be used by other modules as an input value.\r
+// Lower multiplicity is 1, as even in the simplest case (only one frequency is\r
+// used), there is one frequency to be defined.\r
+typedef struct {\r
+\r
+       //      This is the frequency for the specific instance of the McuClockReference-\r
+       //      Point container. It shall be givn in Hz.\r
+       uint32 McuClockReferencePointFrequency;\r
+\r
+} Mcu_ClockReferencePointType;\r
+\r
+typedef struct {\r
+       //      Enables/Disables clock failure notification. In case this feature is not supported\r
+       //      by HW the setting should be disabled.\r
+       uint8   McuClockSrcFailureNotification;\r
+\r
+       //      This parameter shall represent the number of Modes available for the\r
+       //      MCU. calculationFormula = Number of configured McuModeSettingConf\r
+       uint8 McuNumberOfMcuModes;\r
+\r
+  //  This parameter shall represent the number of RAM sectors available for\r
+  //  the MCU. calculationFormula = Number of configured McuRamSectorSet-\r
+  //  tingConf\r
+  uint8 McuRamSectors;\r
+\r
+  //  This parameter shall represent the number of clock setting available for\r
+  //  the MCU.\r
+  uint8 McuClockSettings;\r
+\r
+  // This parameter defines the default clock settings that should be used\r
+  // It is an index into the McuClockSettingsConfig\r
+  Mcu_ClockType McuDefaultClockSettings;\r
+\r
+       //      This parameter relates to the MCU specific reset configuration. This ap-\r
+       //      plies to the function Mcu_PerformReset, which performs a microcontroller\r
+       //      reset using the hardware feature of the microcontroller.\r
+       uint32 McuResetSetting;\r
+\r
+       //      This container contains the configuration (parameters) for the\r
+       //      Clock settings of the MCU. Please see MCU031 for more in-\r
+       //      formation on the MCU clock settings.\r
+       Mcu_ClockSettingConfigType * McuClockSettingConfig;\r
+\r
+       //      This container contains the configuration (parameters) for the\r
+       //      Mode setting of the MCU. Please see MCU035 for more information\r
+       //  on the MCU mode settings.\r
+       Mcu_ModeSettingConfigType  *McuModeSettingConfig;\r
+\r
+       //      This container contains the configuration (parameters) for the\r
+       //      RAM Sector setting. Please see MCU030 for more information\r
+       //      on RAM sec-tor settings.\r
+       Mcu_RamSectorSettingConfigType *McuRamSectorSettingConfig;\r
+\r
+} Mcu_ConfigType;\r
+\r
+extern const Mcu_ConfigType McuConfigData[];\r
+\r
+#define MCU_DEFAULT_CONFIG McuConfigData[0]\r
+\r
+#endif /*MCU_CFG_H_*/\r
similarity index 73%
rename from arch/ppc/mpc55xx/drivers/CanIf.c
rename to communication/CanIf/CanIf.c
index f3c656a9490f4ebe0a02b785807f5e7961ae1191..b4fb6b5f46c1b33000d7977ddccd6300d03e1cb8 100644 (file)
 #define DET_REPORTERROR(_x,_y,_z,_q)
 #endif
 
-#define GET_CONTROLLER_CNT()   CAN_ECORE_CTRL_CONFIG_CNT
+
+// Helper to get the Can Controller refered to by a CanIf Channel
+#define ARC_GET_CHANNEL_CONTROLLER(_channel) \
+       CanIf_ConfigPtr->Arc_ChannelToControllerMap[channel]
 
 /* Global configure */
 static const CanIf_ConfigType *CanIf_ConfigPtr;
 
 // Struct of controller private data.
-typedef struct CanIf_ControllerPrivateStruct
+typedef struct
 {
   CanIf_ControllerModeType  ControllerMode;
-  CanIf_ChannelGetModeType  ChannelMode;
-} CanIf_ControllerPrivateType;
+  CanIf_ChannelGetModeType  PduMode;
+} CanIf_ChannelPrivateType;
 
 typedef struct
 {
   boolean initRun;
-  CanIf_ControllerPrivateType controllerData[GET_CONTROLLER_CNT()];
+  CanIf_ChannelPrivateType channelData[CANIF_CHANNEL_CNT];
 } CanIf_GlobalType;
 
-static sint8 CanIf_FindHrhCtrl( Can_EcoreHRHType hrh )
+static CanIf_Arc_ChannelIdType CanIf_Arc_FindHrhChannel( Can_Arc_HRHType hrh )
 {
   const CanIf_HrhConfigType *hrhConfig;
 
@@ -93,7 +96,7 @@ static sint8 CanIf_FindHrhCtrl( Can_EcoreHRHType hrh )
     hrhConfig++;
     if (hrhConfig->CanIfHrhIdSymRef == hrh)
       return hrhConfig->CanIfCanControllerHrhIdRef;
-  } while(!hrhConfig->CanIfEcoreEOL);
+  } while(!hrhConfig->CanIf_Arc_EOL);
 
   DET_REPORTERROR(MODULE_ID_CANIF, 0, CANIF_RXINDICATION_ID, CANIF_E_PARAM_HRH);
 
@@ -109,31 +112,40 @@ void CanIf_Init(const CanIf_ConfigType *ConfigPtr)
 
   CanIf_ConfigPtr = ConfigPtr;
 
-  for (uint16 i = 0; i < GET_CONTROLLER_CNT(); i++)
+  for (uint16 i = 0; i < CANIF_CHANNEL_CNT; i++)
   {
-    CanIf_Global.controllerData[i].ControllerMode = CANIF_CS_STOPPED;
-    CanIf_Global.controllerData[i].ChannelMode = CANIF_GET_OFFLINE;
+    CanIf_Global.channelData[i].ControllerMode = CANIF_CS_STOPPED;
+    CanIf_Global.channelData[i].PduMode = CANIF_GET_OFFLINE;
   }
 
   // NOTE!
   // Do NOT initialise the Can Drivers and Tranceivers, see CANIF085
-  //
 
   CanIf_Global.initRun = TRUE;
 }
 
-//-------------------------------------------------------------------
 
+
+
+//-------------------------------------------------------------------
+/*
+ * Controller :: CanIf_Arc_ChannelIdType (CanIf-specific id to abstract from Can driver/controllers)
+ * ConfigurationIndex :: CanIf_Arc_ConfigurationIndexType
+ *   /tojo
+ */
 void CanIf_InitController(uint8 Controller, uint8 ConfigurationIndex)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
   VALIDATE_NO_RV(CanIf_Global.initRun, CANIF_INIT_CONTROLLER_ID, CANIF_E_UNINIT );
-  VALIDATE_NO_RV(Controller < GET_CONTROLLER_CNT(), CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_CONTROLLER);
-  VALIDATE_NO_RV(ConfigurationIndex < CAN_ECORE_CTRL_CONFIG_CNT, CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_POINTER);
+  VALIDATE_NO_RV(channel < CANIF_CHANNEL_CNT, CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_CONTROLLER);
+  VALIDATE_NO_RV(ConfigurationIndex < CANIF_CHANNEL_CONFIGURATION_CNT, CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_POINTER);
 
 #if (CANIF_DEV_ERROR_DETECT == STD_ON)
   CanIf_ControllerModeType mode;
 
-  if (CanIf_GetControllerMode(Controller, &mode) == E_OK)
+  if (CanIf_GetControllerMode(channel, &mode) == E_OK)
   {
     VALIDATE_NO_RV((mode != CANIF_CS_UNINIT), CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_CONTROLLER_MODE );
   }
@@ -143,11 +155,11 @@ void CanIf_InitController(uint8 Controller, uint8 ConfigurationIndex)
   }
 #endif
 
-  if (CanIf_GetControllerMode(Controller, &mode) == E_OK)
+  if (CanIf_GetControllerMode(channel, &mode) == E_OK)
   {
     if (mode == CANIF_CS_STARTED)
     {
-      CanIf_SetControllerMode(Controller, CANIF_CS_STOPPED); // CANIF092
+      CanIf_SetControllerMode(channel, CANIF_CS_STOPPED); // CANIF092
     }
     else if (mode != CANIF_CS_STOPPED)
     {
@@ -163,16 +175,20 @@ void CanIf_InitController(uint8 Controller, uint8 ConfigurationIndex)
 
   // Grab the configuration from the Can Controller
   const Can_ControllerConfigType *canConfig;
+  const CanControllerIdType canControllerId = ARC_GET_CHANNEL_CONTROLLER(channel);
 
-  // Validate that the configuration index match the right controller
-  VALIDATE_NO_RV(CanIf_ConfigPtr->ControllerConfig[ConfigurationIndex].CanIfControllerIdRef == Controller, CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_CONTROLLER);
+  // Validate that the configuration at the index match the right channel
+  VALIDATE_NO_RV(CanIf_ConfigPtr->ControllerConfig[ConfigurationIndex].CanIfControllerIdRef == channel, CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_CONTROLLER);
 
   canConfig = CanIf_ConfigPtr->ControllerConfig[ConfigurationIndex].CanIfInitControllerRef;
 
-  Can_InitController(Controller, canConfig);
+  // Validate that the CanIfControllerConfig points to configuration for the right Can Controller
+  VALIDATE_NO_RV(canConfig->CanControllerId == canControllerId, CANIF_INIT_CONTROLLER_ID, CANIF_E_PARAM_CONTROLLER);
+
+  Can_InitController(canControllerId, canConfig);
 
   // Set mode to stopped
-  CanIf_SetControllerMode(Controller, CANIF_CS_STOPPED);
+  CanIf_SetControllerMode(channel, CANIF_CS_STOPPED);
 }
 
 //-------------------------------------------------------------------
@@ -180,19 +196,23 @@ void CanIf_InitController(uint8 Controller, uint8 ConfigurationIndex)
 Std_ReturnType CanIf_SetControllerMode(uint8 Controller,
     CanIf_ControllerModeType ControllerMode)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
+
   CanIf_ControllerModeType oldMode;
 
   VALIDATE( CanIf_Global.initRun, CANIF_SET_CONTROLLER_MODE_ID, CANIF_E_UNINIT );
-  VALIDATE( Controller < GET_CONTROLLER_CNT(), CANIF_SET_CONTROLLER_MODE_ID, CANIF_E_PARAM_CONTROLLER );
+  VALIDATE( channel < CANIF_CHANNEL_CNT, CANIF_SET_CONTROLLER_MODE_ID, CANIF_E_PARAM_CONTROLLER );
 
-  oldMode = CanIf_Global.controllerData[Controller].ControllerMode;
+  oldMode = CanIf_Global.channelData[channel].ControllerMode;
 
   if (oldMode == CANIF_CS_UNINIT)
   {
     VALIDATE(FALSE, CANIF_SET_CONTROLLER_MODE_ID, CANIF_E_UNINIT); // See figure 32, 33
     return E_NOT_OK;
   }
-
+  CanControllerIdType canControllerId = ARC_GET_CHANNEL_CONTROLLER(Controller);
   switch (ControllerMode)
   {
   case CANIF_CS_STARTED:   // Figure 32
@@ -200,19 +220,19 @@ Std_ReturnType CanIf_SetControllerMode(uint8 Controller,
     switch (oldMode)
     {
       case CANIF_CS_SLEEP:
-        if (Can_SetControllerMode(Controller, CAN_T_STOP) == CAN_NOT_OK)
+        if (Can_SetControllerMode(canControllerId, CAN_T_STOP) == CAN_NOT_OK)
           return E_NOT_OK;
-        CanIf_Global.controllerData[Controller].ControllerMode = CANIF_CS_STOPPED;
+        CanIf_Global.channelData[channel].ControllerMode = CANIF_CS_STOPPED;
         break;
       default:
         // Just fall through
         break;
     }
 
-    CanIf_SetPduMode(Controller, CANIF_SET_ONLINE);
-    if (Can_SetControllerMode(Controller, CAN_T_START) == CAN_NOT_OK)
+    CanIf_SetPduMode(channel, CANIF_SET_ONLINE);
+    if (Can_SetControllerMode(canControllerId, CAN_T_START) == CAN_NOT_OK)
       return E_NOT_OK;
-    CanIf_Global.controllerData[Controller].ControllerMode = CANIF_CS_STARTED;
+    CanIf_Global.channelData[channel].ControllerMode = CANIF_CS_STARTED;
   }
   break;
 
@@ -220,18 +240,18 @@ Std_ReturnType CanIf_SetControllerMode(uint8 Controller,
   {
     switch (oldMode) {
       case CANIF_CS_STARTED:
-        if (Can_SetControllerMode(Controller, CAN_T_STOP) == CAN_NOT_OK)
+        if (Can_SetControllerMode(canControllerId, CAN_T_STOP) == CAN_NOT_OK)
           return E_NOT_OK;
-        CanIf_Global.controllerData[Controller].ControllerMode = CANIF_CS_STOPPED;
+        CanIf_Global.channelData[channel].ControllerMode = CANIF_CS_STOPPED;
         break;
       default:
         // Just fall through for other cases
         break;
     }
 
-    if (Can_SetControllerMode(Controller, CAN_T_SLEEP) == CAN_NOT_OK)
+    if (Can_SetControllerMode(canControllerId, CAN_T_SLEEP) == CAN_NOT_OK)
       return E_NOT_OK;
-    CanIf_Global.controllerData[Controller].ControllerMode = CANIF_CS_SLEEP;
+    CanIf_Global.channelData[channel].ControllerMode = CANIF_CS_SLEEP;
   }
 
   case CANIF_CS_STOPPED:
@@ -239,7 +259,7 @@ Std_ReturnType CanIf_SetControllerMode(uint8 Controller,
     switch (oldMode)
     {
       case CANIF_CS_SLEEP:
-        if (Can_SetControllerMode(Controller, CAN_T_WAKEUP) == CAN_NOT_OK)
+        if (Can_SetControllerMode(canControllerId, CAN_T_WAKEUP) == CAN_NOT_OK)
           return E_NOT_OK;
         break;
       default:
@@ -247,14 +267,14 @@ Std_ReturnType CanIf_SetControllerMode(uint8 Controller,
         break;
     }
 
-    CanIf_SetPduMode(Controller, CANIF_SET_OFFLINE);
-    if (Can_SetControllerMode(Controller, CAN_T_STOP) == CAN_NOT_OK)
+    CanIf_SetPduMode(channel, CANIF_SET_OFFLINE);
+    if (Can_SetControllerMode(canControllerId, CAN_T_STOP) == CAN_NOT_OK)
       return E_NOT_OK;
-    CanIf_Global.controllerData[Controller].ControllerMode = CANIF_CS_STOPPED;
+    CanIf_Global.channelData[channel].ControllerMode = CANIF_CS_STOPPED;
   }
 
   case CANIF_CS_UNINIT:
-    // Jusr fall through
+    // Just fall through
     break;
   }
   return E_OK;
@@ -265,11 +285,14 @@ Std_ReturnType CanIf_SetControllerMode(uint8 Controller,
 Std_ReturnType CanIf_GetControllerMode(uint8 Controller,
     CanIf_ControllerModeType *ControllerModePtr)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
   VALIDATE(CanIf_Global.initRun, CANIF_GET_CONTROLLER_MODE_ID, CANIF_E_UNINIT );
-  VALIDATE(Controller < GET_CONTROLLER_CNT(), CANIF_GET_CONTROLLER_MODE_ID, CANIF_E_PARAM_CONTROLLER );
+  VALIDATE(channel < CANIF_CHANNEL_CNT, CANIF_GET_CONTROLLER_MODE_ID, CANIF_E_PARAM_CONTROLLER );
   VALIDATE(ControllerModePtr != NULL, CANIF_GET_CONTROLLER_MODE_ID, CANIF_E_PARAM_POINTER );
 
-  *ControllerModePtr = CanIf_Global.controllerData[Controller].ControllerMode;
+  *ControllerModePtr = CanIf_Global.channelData[channel].ControllerMode;
 
   return E_OK;
 }
@@ -319,17 +342,17 @@ Std_ReturnType CanIf_Transmit(PduIdType CanTxPduId,
     return E_NOT_OK;
   }
 
-  uint8 controller = txEntry->CanIfCanTxPduHthRef->CanIfCanControllerIdRef;
+  CanIf_Arc_ChannelIdType channel = txEntry->CanIfCanTxPduHthRef->CanIfCanControllerIdRef;
 
   // Get and verify the controller mode
-  if (CanIf_GetControllerMode(controller, &csMode) == E_NOT_OK)
+  if (CanIf_GetControllerMode(channel, &csMode) == E_NOT_OK)
     return E_NOT_OK;
 
   if (csMode != CANIF_CS_STARTED)  // CANIF_161
     return E_NOT_OK;
 
   // Get and verify the PDU channel mode control
-  if (CanIf_GetPduMode(controller, &pduMode) == E_NOT_OK)
+  if (CanIf_GetPduMode(channel, &pduMode) == E_NOT_OK)
     return E_NOT_OK;
 
   if ((pduMode != CANIF_GET_TX_ONLINE) && (pduMode != CANIF_GET_ONLINE))
@@ -418,73 +441,76 @@ CanIf_NotifStatusType CanIf_ReadRxNotifStatus(PduIdType CanRxPduId)
 Std_ReturnType CanIf_SetPduMode(uint8 Controller,
     CanIf_ChannelSetModeType PduModeRequest)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
   VALIDATE( CanIf_Global.initRun, CANIF_SETPDUMODE_ID, CANIF_E_UNINIT );
-  VALIDATE( Controller < GET_CONTROLLER_CNT(), CANIF_SETPDUMODE_ID, CANIF_E_PARAM_CONTROLLER );
+  VALIDATE( channel < CANIF_CHANNEL_CNT, CANIF_SETPDUMODE_ID, CANIF_E_PARAM_CONTROLLER );
 
-  CanIf_ChannelGetModeType oldMode = CanIf_Global.controllerData[Controller].ChannelMode;
+  CanIf_ChannelGetModeType oldMode = CanIf_Global.channelData[channel].PduMode;
 
   switch(PduModeRequest)
   {
   case CANIF_SET_OFFLINE:
-    CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE;
+    CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE;
     break;
   case CANIF_SET_RX_OFFLINE:
     if (oldMode == CANIF_GET_RX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE;
     else if (oldMode == CANIF_GET_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_TX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_TX_ONLINE;
     else if (oldMode == CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE_ACTIVE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE_ACTIVE;
 
     // Other oldmodes don't care
     break;
   case CANIF_SET_RX_ONLINE:
     if (oldMode == CANIF_GET_OFFLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_RX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_RX_ONLINE;
     else if (oldMode == CANIF_GET_TX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_ONLINE;
     else if (oldMode == CANIF_GET_OFFLINE_ACTIVE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE;
 
     // Other oldmodes don't care
     break;
   case CANIF_SET_TX_OFFLINE:
     if (oldMode == CANIF_GET_TX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE;
     else if (oldMode == CANIF_GET_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_RX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_RX_ONLINE;
     else if (oldMode == CANIF_GET_OFFLINE_ACTIVE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE;
     else if (oldMode == CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_RX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_RX_ONLINE;
 
     // Other oldmodes don't care
     break;
   case CANIF_SET_TX_ONLINE:
     if (oldMode == CANIF_GET_OFFLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_TX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_TX_ONLINE;
     else if (oldMode == CANIF_GET_RX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_ONLINE;
     else if (oldMode == CANIF_GET_OFFLINE_ACTIVE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_TX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_TX_ONLINE;
     else if (oldMode == CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_ONLINE;
 
     // Other oldmodes don't care
     break;
   case CANIF_SET_ONLINE:
-    CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_ONLINE;
+    CanIf_Global.channelData[channel].PduMode = CANIF_GET_ONLINE;
     break;
 
   case CANIF_SET_TX_OFFLINE_ACTIVE:
     if (oldMode == CANIF_GET_OFFLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE_ACTIVE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE_ACTIVE;
     else if (oldMode == CANIF_GET_RX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE;
     else if (oldMode == CANIF_GET_TX_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE_ACTIVE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE_ACTIVE;
     else if (oldMode == CANIF_GET_ONLINE)
-      CanIf_Global.controllerData[Controller].ChannelMode = CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE;
+      CanIf_Global.channelData[channel].PduMode = CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE;
 
     // Other oldmodes don't care
     break;
@@ -498,10 +524,13 @@ Std_ReturnType CanIf_SetPduMode(uint8 Controller,
 Std_ReturnType CanIf_GetPduMode(uint8 Controller,
     CanIf_ChannelGetModeType *PduModePtr)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
   VALIDATE( CanIf_Global.initRun, CANIF_GETPDUMODE_ID, CANIF_E_UNINIT );
-  VALIDATE( Controller < GET_CONTROLLER_CNT(), CANIF_GETPDUMODE_ID, CANIF_E_PARAM_CONTROLLER );
+  VALIDATE( channel < CANIF_CHANNEL_CNT, CANIF_GETPDUMODE_ID, CANIF_E_PARAM_CONTROLLER );
 
-  *PduModePtr = CanIf_Global.controllerData[Controller].ChannelMode;
+  *PduModePtr = CanIf_Global.channelData[channel].PduMode;
 
   return E_OK;
 }
@@ -523,15 +552,15 @@ void CanIf_SetDynamicTxId(PduIdType CanTxPduId, Can_IdType CanId)
   }
 
   // Check that this is a dymanic PDU
-  if (txEntry->CanIfCanTxPduType != ECORE_PDU_TYPE_DYNAMIC)
+  if (txEntry->CanIfCanTxPduType != ARC_PDU_TYPE_DYNAMIC)
   {
     VALIDATE_NO_RV(FALSE, CANIF_SETDYNAMICTX_ID, CANIF_E_INVALID_TXPDUID);
     return;
   }
 
   // Check that this is an extended or standard id
-  if (((CanId & 0x80000000) && (txEntry->CanIfTxPduIdCanIdType == ECORE_CAN_ID_TYPE_29)) ||
-      (((CanId & 0x80000000) == 0) && (txEntry->CanIfTxPduIdCanIdType == ECORE_CAN_ID_TYPE_11)))
+  if (((CanId & 0x80000000) && (txEntry->CanIfTxPduIdCanIdType == ARC_CAN_ID_TYPE_29)) ||
+      (((CanId & 0x80000000) == 0) && (txEntry->CanIfTxPduIdCanIdType == ARC_CAN_ID_TYPE_11)))
   {
     // Update the CanID
     //txEntry->CanIfCanTxPduIdCanId = CanId;  // TODO How do we fix this from a const pointer
@@ -645,13 +674,13 @@ void CanIf_RxIndication(uint8 Hrh, Can_IdType CanId, uint8 CanDlc,
 
   /* Check PDU mode before continue processing */
   CanIf_ChannelGetModeType mode;
-  sint8 controller = CanIf_FindHrhCtrl(Hrh);
-  if (controller == -1)  // Invalid HRH
+  CanIf_Arc_ChannelIdType channel = CanIf_Arc_FindHrhChannel(Hrh);
+  if (channel == -1)  // Invalid HRH
   {
     return;
   }
 
-  if (CanIf_GetPduMode(controller, &mode) == E_OK)
+  if (CanIf_GetPduMode(channel, &mode) == E_OK)
   {
     if (mode == CANIF_GET_OFFLINE || mode == CANIF_GET_TX_ONLINE ||
         mode == CANIF_GET_OFFLINE_ACTIVE)
@@ -673,7 +702,7 @@ void CanIf_RxIndication(uint8 Hrh, Can_IdType CanId, uint8 CanDlc,
     if (entry->CanIfCanRxPduHrhRef->CanIfHrhIdSymRef == Hrh)
     {
       // Software filtering
-      if (entry->CanIfCanRxPduHrhRef->CanIfHrhType == CAN_ECORE_HANDLE_TYPE_BASIC)
+      if (entry->CanIfCanRxPduHrhRef->CanIfHrhType == CAN_ARC_HANDLE_TYPE_BASIC)
       {
         if (entry->CanIfCanRxPduHrhRef->CanIfSoftwareFilterHrh)
         {
@@ -765,32 +794,41 @@ void CanIf_CancelTxConfirmation(const Can_PduType *PduInfoPtr)
 
 void CanIf_ControllerBusOff(uint8 Controller)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
   VALIDATE_NO_RV( CanIf_Global.initRun, CANIF_CONTROLLER_BUSOFF_ID, CANIF_E_UNINIT );
-  VALIDATE_NO_RV( Controller < GET_CONTROLLER_CNT(), CANIF_CONTROLLER_BUSOFF_ID, CANIF_E_PARAM_CONTROLLER );
+  VALIDATE_NO_RV( Controller < CANIF_CHANNEL_CNT, CANIF_CONTROLLER_BUSOFF_ID, CANIF_E_PARAM_CONTROLLER );
 
   // According to figure 35 in canif spec this should be done in
   // Can driver but it is better to do it here
-  CanIf_SetControllerMode(Controller, CANIF_CS_STOPPED);
+  CanIf_SetControllerMode(channel, CANIF_CS_STOPPED);
 
   if (CanIf_ConfigPtr->DispatchConfig->CanIfBusOffNotification != NULL)
   {
-    CanIf_ConfigPtr->DispatchConfig->CanIfBusOffNotification(Controller);
+    CanIf_ConfigPtr->DispatchConfig->CanIfBusOffNotification(channel);
   }
 }
 
 void CanIf_SetWakeupEvent(uint8 Controller)
 {
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
   VALIDATE_NO_RV(FALSE, CANIF_SETWAKEUPEVENT_ID, CANIF_E_NOK_NOSUPPORT);
   VALIDATE_NO_RV( CanIf_Global.initRun, CANIF_SETWAKEUPEVENT_ID, CANIF_E_UNINIT );
-  VALIDATE_NO_RV( Controller < GET_CONTROLLER_CNT(), CANIF_SETWAKEUPEVENT_ID, CANIF_E_PARAM_CONTROLLER );
+  VALIDATE_NO_RV( channel < CANIF_CHANNEL_CNT, CANIF_SETWAKEUPEVENT_ID, CANIF_E_PARAM_CONTROLLER );
 
   // Not supported
 }
 
-void CanIf_EcoreError(uint8 Controller, Can_EcoreErrorType Error)
+void CanIf_Arc_Error(uint8 Controller, Can_Arc_ErrorType Error)
 {
-  VALIDATE_NO_RV( CanIf_Global.initRun, CANIF_ECOREERROR_ID, CANIF_E_UNINIT );
-  VALIDATE_NO_RV( Controller < GET_CONTROLLER_CNT(), CANIF_ECOREERROR_ID, CANIF_E_PARAM_CONTROLLER );
+  // We call this a CanIf channel. Hopefully makes it easier to follow.
+  CanIf_Arc_ChannelIdType channel = Controller;
+
+  VALIDATE_NO_RV( CanIf_Global.initRun, CANIF_ARCERROR_ID, CANIF_E_UNINIT );
+  VALIDATE_NO_RV( channel < CANIF_CHANNEL_CNT, CANIF_ARCERROR_ID, CANIF_E_PARAM_CONTROLLER );
 
   if (CanIf_ConfigPtr->DispatchConfig->CanIfErrorNotificaton != NULL)
   {
index 42ad9f86495261045e7961c43421438510f93cca..fac200af0fb7a43367e52d5550d5ea65aa40c760 100644 (file)
 \r
 const Com_ConfigType * ComConfig;\r
 \r
-ComEcoreIPdu_type ComEcoreIPdu[COM_MAX_NR_IPDU];\r
-ComEcoreSignal_type ComEcoreSignal[COM_MAX_NR_SIGNAL];\r
-ComEcoreGroupSignal_type ComEcoreGroupSignal[COM_MAX_NR_GROUPSIGNAL];\r
-\r
-ComEcoreConfig_type ComEcoreConfig = {\r
-       .ComIPdu = ComEcoreIPdu,\r
-       .ComSignal = ComEcoreSignal,\r
-       .ComGroupSignal = ComEcoreGroupSignal\r
+Com_Arc_IPdu_type Com_Arc_IPdu[COM_MAX_NR_IPDU];\r
+Com_Arc_Signal_type Com_Arc_Signal[COM_MAX_NR_SIGNAL];\r
+Com_Arc_GroupSignal_type Com_Arc_GroupSignal[COM_MAX_NR_GROUPSIGNAL];\r
+\r
+Com_Arc_Config_type Com_Arc_Config = {\r
+       .ComIPdu = Com_Arc_IPdu,\r
+       .ComSignal = Com_Arc_Signal,\r
+       .ComGroupSignal = Com_Arc_GroupSignal\r
 };\r
 \r
 \r
@@ -54,18 +54,18 @@ void Com_Init(const Com_ConfigType *config ) {
        uint32 earliestDeadline;\r
        uint32 firstTimeout;\r
 \r
-       ComEcoreConfig.OutgoingPdu.SduDataPtr = malloc(8);\r
+       Com_Arc_Config.OutgoingPdu.SduDataPtr = malloc(8);\r
 \r
        // Initialize each IPdu\r
        //ComIPdu_type *IPdu;\r
-       //ComEcoreIPdu_type *EcoreIPdu;\r
+       //Com_Arc_IPdu_type *Arc_IPdu;\r
        const ComSignal_type *Signal;\r
        const ComGroupSignal_type *GroupSignal;\r
-       for (int i = 0; !ComConfig->ComIPdu[i].ComEcoreEOL; i++) {\r
-               ComEcoreConfig.ComNIPdu++;\r
+       for (int i = 0; !ComConfig->ComIPdu[i].Com_Arc_EOL; i++) {\r
+               Com_Arc_Config.ComNIPdu++;\r
 \r
                ComGetIPdu(i);\r
-               ComGetEcoreIPdu(i);\r
+               ComGetArcIPdu(i);\r
 \r
                if (i >= COM_MAX_NR_IPDU) {\r
                        DET_REPORTERROR(COM_MODULE_ID, COM_INSTANCE_ID, 0x01, COM_E_TOO_MANY_IPDU);\r
@@ -76,8 +76,8 @@ void Com_Init(const Com_ConfigType *config ) {
                // If this is a TX and cyclic IPdu, configure the first deadline.\r
                if (IPdu->ComIPduDirection == SEND &&\r
                                (IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeMode == PERIODIC || IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeMode == MIXED)) {\r
-                       //IPdu->ComEcoreTxIPduTimers.ComTxModeTimePeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeTimeOffsetFactor;\r
-                       EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeTimePeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeTimeOffsetFactor;\r
+                       //IPdu->Com_Arc_TxIPduTimers.ComTxModeTimePeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeTimeOffsetFactor;\r
+                       Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeTimePeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeTimeOffsetFactor;\r
                }\r
 \r
 \r
@@ -86,23 +86,23 @@ void Com_Init(const Com_ConfigType *config ) {
                firstTimeout = -1;\r
 \r
                // Reserve memory for all defined signals.\r
-               EcoreIPdu->ComIPduDataPtr = malloc(IPdu->ComIPduSize);\r
-               if (EcoreIPdu->ComIPduDataPtr == NULL) {\r
+               Arc_IPdu->ComIPduDataPtr = malloc(IPdu->ComIPduSize);\r
+               if (Arc_IPdu->ComIPduDataPtr == NULL) {\r
                        failure = 1;\r
                }\r
 \r
                // Initialize the memory with the default value.\r
                if (IPdu->ComIPduDirection == SEND) {\r
-                       memset(EcoreIPdu->ComIPduDataPtr, IPdu->ComTxIPdu.ComTxIPduUnusedAreasDefault, IPdu->ComIPduSize);\r
+                       memset(Arc_IPdu->ComIPduDataPtr, IPdu->ComTxIPdu.ComTxIPduUnusedAreasDefault, IPdu->ComIPduSize);\r
                }\r
 \r
                // For each signal in this PDU.\r
                for (int j = 0; IPdu->ComIPduSignalRef[j] != NULL; j++) {\r
                        Signal = IPdu->ComIPduSignalRef[j];\r
-                       ComGetEcoreSignal(Signal->ComHandleId);\r
+                       ComGetArcSignal(Signal->ComHandleId);\r
 \r
                        // If this signal already has been configured this is most likely an error.\r
-                       if (EcoreSignal->ComIPduDataPtr != NULL) {\r
+                       if (Arc_Signal->ComIPduDataPtr != NULL) {\r
                                DET_REPORTERROR(COM_MODULE_ID, COM_INSTANCE_ID, 0x01, COM_E_INVALID_SIGNAL_CONFIGURATION);\r
                                failure = 1;\r
                        }\r
@@ -110,10 +110,10 @@ void Com_Init(const Com_ConfigType *config ) {
                        // Configure signal deadline monitoring if used.\r
                        if (Signal->ComTimeoutFactor > 0) {\r
 \r
-                               if (Signal->ComSignalEcoreUseUpdateBit) {\r
+                               if (Signal->ComSignalArcUseUpdateBit) {\r
                                        // This signal uses an update bit, and hence has its own deadline monitoring.\r
-                                       EcoreSignal->ComEcoreDeadlineCounter = Signal->ComFirstTimeoutFactor; // Configure the deadline counter\r
-                                       EcoreSignal->ComTimeoutFactor = Signal->ComTimeoutFactor;\r
+                                       Arc_Signal->Com_Arc_DeadlineCounter = Signal->ComFirstTimeoutFactor; // Configure the deadline counter\r
+                                       Arc_Signal->ComTimeoutFactor = Signal->ComTimeoutFactor;\r
 \r
                                } else {\r
                                        // This signal does not use an update bit, and should therefore use per I-PDU deadline monitoring.\r
@@ -128,39 +128,39 @@ void Com_Init(const Com_ConfigType *config ) {
                        }\r
 \r
                        // Increment helper counters\r
-                   EcoreIPdu->NComIPduSignalRef = j + 1;\r
+                   Arc_IPdu->NComIPduSignalRef = j + 1;\r
 \r
-                       //IPdu->ComEcoreNIPduSignalGroupRef = j + 1;\r
+                       //IPdu->Com_Arc_NIPduSignalGroupRef = j + 1;\r
 \r
-                       EcoreSignal->ComIPduDataPtr = EcoreIPdu->ComIPduDataPtr;\r
-                       EcoreSignal->ComIPduHandleId = i;\r
+                       Arc_Signal->ComIPduDataPtr = Arc_IPdu->ComIPduDataPtr;\r
+                       Arc_Signal->ComIPduHandleId = i;\r
 \r
                        // Clear update bits\r
-                       if (Signal->ComSignalEcoreUseUpdateBit) {\r
-                               clearBit(EcoreIPdu->ComIPduDataPtr, Signal->ComUpdateBitPosition);\r
+                       if (Signal->ComSignalArcUseUpdateBit) {\r
+                               clearBit(Arc_IPdu->ComIPduDataPtr, Signal->ComUpdateBitPosition);\r
                        }\r
 \r
                        // If this signal is a signal group\r
-                       if (Signal->ComEcoreIsSignalGroup) {\r
-                               EcoreSignal->ComEcoreShadowBuffer = malloc(IPdu->ComIPduSize);\r
+                       if (Signal->Com_Arc_IsSignalGroup) {\r
+                               Arc_Signal->Com_Arc_ShadowBuffer = malloc(IPdu->ComIPduSize);\r
 \r
-                               if (EcoreSignal->ComEcoreShadowBuffer == NULL) {\r
+                               if (Arc_Signal->Com_Arc_ShadowBuffer == NULL) {\r
                                        failure = 1;\r
                                }\r
 \r
                                // For each group signal of this signal group.\r
                                for(int h = 0; Signal->ComGroupSignal[h] != NULL; h++) {\r
                                        GroupSignal = Signal->ComGroupSignal[h];\r
-                                       ComGetEcoreGroupSignal(GroupSignal->ComHandleId);\r
+                                       ComGetArcGroupSignal(GroupSignal->ComHandleId);\r
                                        // Set pointer to shadow buffer\r
-                                       EcoreGroupSignal->ComEcoreShadowBuffer = EcoreSignal->ComEcoreShadowBuffer;\r
+                                       Arc_GroupSignal->Com_Arc_ShadowBuffer = Arc_Signal->Com_Arc_ShadowBuffer;\r
                                        // Initialize group signal data.\r
-                                       Com_CopyData(EcoreIPdu->ComIPduDataPtr, &GroupSignal->ComSignalInitValue, GroupSignal->ComBitSize, GroupSignal->ComBitPosition, 0);\r
+                                       Com_CopyData(Arc_IPdu->ComIPduDataPtr, &GroupSignal->ComSignalInitValue, GroupSignal->ComBitSize, GroupSignal->ComBitPosition, 0);\r
                                }\r
 \r
                        } else {\r
                                // Initialize signal data.\r
-                               Com_CopyData(EcoreIPdu->ComIPduDataPtr, &Signal->ComSignalInitValue, Signal->ComBitSize, Signal->ComBitPosition, 0);\r
+                               Com_CopyData(Arc_IPdu->ComIPduDataPtr, &Signal->ComSignalInitValue, Signal->ComBitSize, Signal->ComBitPosition, 0);\r
                        }\r
 \r
                        // Check filter configuration\r
@@ -199,11 +199,11 @@ void Com_Init(const Com_ConfigType *config ) {
                // Configure per I-PDU based deadline monitoring.\r
                for (int j = 0; IPdu->ComIPduSignalRef[j] != NULL; j++) {\r
                        Signal = IPdu->ComIPduSignalRef[j];\r
-                       ComGetEcoreSignal(Signal->ComHandleId);\r
+                       ComGetArcSignal(Signal->ComHandleId);\r
 \r
-                       if (Signal->ComTimeoutFactor > 0 && !Signal->ComSignalEcoreUseUpdateBit) {\r
-                               EcoreSignal->ComTimeoutFactor = earliestDeadline;\r
-                               EcoreSignal->ComEcoreDeadlineCounter = firstTimeout;\r
+                       if (Signal->ComTimeoutFactor > 0 && !Signal->ComSignalArcUseUpdateBit) {\r
+                               Arc_Signal->ComTimeoutFactor = earliestDeadline;\r
+                               Arc_Signal->Com_Arc_DeadlineCounter = firstTimeout;\r
                        }\r
                }\r
        }\r
@@ -212,7 +212,7 @@ void Com_Init(const Com_ConfigType *config ) {
        // An error occurred.\r
        if (failure) {\r
                // Free allocated memory\r
-               for (int i = 0; !ComConfig->ComIPdu[i].ComEcoreEOL; i++) {\r
+               for (int i = 0; !ComConfig->ComIPdu[i].Com_Arc_EOL; i++) {\r
                        // Release memory for all defined signals.\r
                        //free(ComConfig->ComIPdu[i].ComIPduDataPtr);\r
                }\r
@@ -229,17 +229,17 @@ void Com_DeInit( void ) {
 }\r
 \r
 void Com_IpduGroupStart(Com_PduGroupIdType IpduGroupId,boolean Initialize) {\r
-       for (int i = 0; !ComConfig->ComIPdu[i].ComEcoreEOL; i++) {\r
+       for (int i = 0; !ComConfig->ComIPdu[i].Com_Arc_EOL; i++) {\r
                if (ComConfig->ComIPdu[i].ComIPduGroupRef == IpduGroupId) {\r
-                       ComEcoreConfig.ComIPdu[i].ComEcoreIpduStarted = 1;\r
+                       Com_Arc_Config.ComIPdu[i].Com_Arc_IpduStarted = 1;\r
                }\r
        }\r
 }\r
 \r
 void Com_IpduGroupStop(Com_PduGroupIdType IpduGroupId) {\r
-       for (int i = 0; !ComConfig->ComIPdu[i].ComEcoreEOL; i++) {\r
+       for (int i = 0; !ComConfig->ComIPdu[i].Com_Arc_EOL; i++) {\r
                if (ComConfig->ComIPdu[i].ComIPduGroupRef == IpduGroupId) {\r
-                       ComEcoreConfig.ComIPdu[i].ComEcoreIpduStarted = 0;\r
+                       Com_Arc_Config.ComIPdu[i].Com_Arc_IpduStarted = 0;\r
                }\r
        }\r
 }\r
similarity index 59%
rename from communication/Com/Com_EcoreTypes.h
rename to communication/Com/Com_Arc_Types.h
index aefc8f1b0f4efad5757365092e5221b00e09cbd1..1e87a1fec906fcbbd5cd5f454b69aa9649a653af 100644 (file)
 
 
 typedef struct {\r
-       uint32 ComFilterEcoreN;\r
-       uint32 ComFilterEcoreNewValue;\r
-       uint32 ComFilterEcoreOldValue;\r
-} ComEcoreFilter_type;\r
+       uint32 ComFilterArcN;\r
+       uint32 ComFilterArcNewValue;\r
+       uint32 ComFilterArcOldValue;\r
+} Com_Arc_Filter_type;\r
 \r
 typedef struct {\r
 \r
-       ComEcoreFilter_type ComFilter;\r
+       Com_Arc_Filter_type ComFilter;\r
 \r
-       uint32 ComEcoreDeadlineCounter;\r
+       uint32 Com_Arc_DeadlineCounter;\r
        uint32 ComTimeoutFactor;\r
        void *ComIPduDataPtr;\r
 \r
        uint8 ComIPduHandleId;\r
        uint8 ComSignalUpdated;\r
-       //uint8 ComEcoreEOL;\r
-       //uint8 ComEcoreIsSignalGroup;\r
+       //uint8 Com_Arc_EOL;\r
+       //uint8 Com_Arc_IsSignalGroup;\r
 \r
        /* For signal groups */\r
-       void *ComEcoreShadowBuffer;\r
+       void *Com_Arc_ShadowBuffer;\r
 \r
-} ComEcoreSignal_type;\r
+} Com_Arc_Signal_type;\r
 \r
 \r
 typedef struct {\r
-       void *ComEcoreShadowBuffer;\r
+       void *Com_Arc_ShadowBuffer;\r
        //uint8 ComIPduHandleId;\r
 \r
        uint8 ComSignalUpdated;\r
-       uint8 ComEcoreEOL;\r
-} ComEcoreGroupSignal_type;\r
+       uint8 Com_Arc_EOL;\r
+} Com_Arc_GroupSignal_type;\r
 \r
 \r
 /*\r
 typedef struct {\r
-       void *ComEcoreShadowBuffer;\r
-       void *ComEcoreIPduDataPtr;\r
-       uint8 ComEcoreEOL;\r
-} ComEcoreSignalGroup_type;\r
+       void *Com_Arc_ShadowBuffer;\r
+       void *Com_Arc_IPduDataPtr;\r
+       uint8 Com_Arc_EOL;\r
+} Com_Arc_SignalGroup_type;\r
 */\r
 \r
 typedef struct {\r
@@ -67,27 +67,27 @@ typedef struct {
        uint32 ComTxModeRepetitionPeriodTimer;\r
        uint32 ComTxIPduMinimumDelayTimer;\r
        uint32 ComTxModeTimePeriodTimer;\r
-} ComEcoreTxIPduTimer_type;\r
+} Com_Arc_TxIPduTimer_type;\r
 \r
 typedef struct {\r
 \r
-       ComEcoreTxIPduTimer_type ComEcoreTxIPduTimers;\r
+       Com_Arc_TxIPduTimer_type Com_Arc_TxIPduTimers;\r
        void *ComIPduDataPtr;\r
 \r
-       uint8 ComEcoreNIPduSignalGroupRef;\r
+       uint8 Com_Arc_NIPduSignalGroupRef;\r
 \r
        uint8 NComIPduSignalRef;\r
 \r
-       uint8 ComEcoreIpduStarted;\r
+       uint8 Com_Arc_IpduStarted;\r
 \r
-} ComEcoreIPdu_type;\r
+} Com_Arc_IPdu_type;\r
 \r
 typedef struct {\r
        uint16 ComNIPdu;\r
-       ComEcoreIPdu_type *ComIPdu; // Only used in PduIdCheck()\r
-       //ComEcoreIPduGroup_type *ComIPduGroup;\r
-       ComEcoreSignal_type *ComSignal;\r
-       //ComEcoreSignalGroup_type *ComSignalGroup;\r
-       ComEcoreGroupSignal_type *ComGroupSignal;\r
+       Com_Arc_IPdu_type *ComIPdu; // Only used in PduIdCheck()\r
+       //Com_Arc_IPduGroup_type *ComIPduGroup;\r
+       Com_Arc_Signal_type *ComSignal;\r
+       //Com_Arc_SignalGroup_type *ComSignalGroup;\r
+       Com_Arc_GroupSignal_type *ComGroupSignal;\r
        PduInfoType OutgoingPdu;\r
-} ComEcoreConfig_type;\r
+} Com_Arc_Config_type;\r
index 3366f8b7e0d0112363a79af57bde57f273482f7a..0ad3770aa5c834b563c540487b2a6f4bd79cd464 100644 (file)
@@ -33,9 +33,9 @@ uint8 Com_SendSignal(Com_SignalIdType SignalId, const void *SignalDataPtr) {
        COM_VALIDATE_SIGNAL(SignalId, 0x0a, E_NOT_OK);\r
        // Store pointer to signal for easier coding.\r
        ComGetSignal(SignalId);\r
-       ComGetEcoreSignal(SignalId);\r
-       ComGetIPdu(EcoreSignal->ComIPduHandleId);\r
-       ComGetEcoreIPdu(EcoreSignal->ComIPduHandleId);\r
+       ComGetArcSignal(SignalId);\r
+       ComGetIPdu(Arc_Signal->ComIPduHandleId);\r
+       ComGetArcIPdu(Arc_Signal->ComIPduHandleId);\r
 \r
        //DEBUG(DEBUG_LOW, "Com_SendSignal: id %d, nBytes %d, BitPosition %d, intVal %d\n", SignalId, nBytes, signal->ComBitPosition, (uint32)*(uint8 *)SignalDataPtr);\r
 \r
@@ -69,18 +69,18 @@ uint8 Com_SendSignal(Com_SignalIdType SignalId, const void *SignalDataPtr) {
 \r
        }\r
 \r
-       Com_CopyData(EcoreIPdu->ComIPduDataPtr, dataPtr, Signal->ComBitSize, Signal->ComBitPosition, 0);\r
+       Com_CopyData(Arc_IPdu->ComIPduDataPtr, dataPtr, Signal->ComBitSize, Signal->ComBitPosition, 0);\r
 \r
        // If the signal has an update bit. Set it!\r
-       if (Signal->ComSignalEcoreUseUpdateBit) {\r
-               setBit(EcoreIPdu->ComIPduDataPtr, Signal->ComUpdateBitPosition);\r
+       if (Signal->ComSignalArcUseUpdateBit) {\r
+               setBit(Arc_IPdu->ComIPduDataPtr, Signal->ComUpdateBitPosition);\r
        }\r
 \r
        /*\r
         * If signal has triggered transmit property, trigger a transmission!\r
         */\r
        if (Signal->ComTransferProperty == TRIGGERED) {\r
-               EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduNumberOfRepetitionsLeft = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeNumberOfRepetitions + 1;\r
+               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduNumberOfRepetitionsLeft = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeNumberOfRepetitions + 1;\r
        }\r
        return E_OK;\r
 }\r
@@ -130,9 +130,9 @@ Std_ReturnType Com_TriggerTransmit(PduIdType ComTxPduId, uint8 *SduPtr) {
         * COM395: This function must override the IPdu callouts used in Com_TriggerIPduTransmit();\r
         */\r
        ComGetIPdu(ComTxPduId);\r
-       ComGetEcoreIPdu(ComTxPduId);\r
+       ComGetArcIPdu(ComTxPduId);\r
 \r
-       memcpy(SduPtr, EcoreIPdu->ComIPduDataPtr, IPdu->ComIPduSize);\r
+       memcpy(SduPtr, Arc_IPdu->ComIPduDataPtr, IPdu->ComIPduSize);\r
        return E_OK;\r
 }\r
 \r
@@ -142,10 +142,10 @@ void Com_TriggerIPduSend(PduIdType ComTxPduId) {
 \r
        //DEBUG(DEBUG_MEDIUM, "Com_TriggerIPduSend sending IPdu %d... ", ComTxPduId);\r
        ComGetIPdu(ComTxPduId);\r
-       ComGetEcoreIPdu(ComTxPduId);\r
+       ComGetArcIPdu(ComTxPduId);\r
 \r
        // Is the IPdu ready for transmission?\r
-       if (EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
+       if (Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
                //DEBUG(DEBUG_MEDIUM, "success!\n", ComTxPduId);\r
 \r
                /*\r
@@ -153,14 +153,14 @@ void Com_TriggerIPduSend(PduIdType ComTxPduId) {
                        .SduDataPtr = malloc(IPdu->ComIPduSize),\r
                        .SduLength = ComConfig->ComIPdu[ComTxPduId].ComIPduSize\r
                };\r
-               memcpy((void *)PduInfoPackage.SduDataPtr, EcoreIPdu->ComIPduDataPtr, IPdu->ComIPduSize);\r
+               memcpy((void *)PduInfoPackage.SduDataPtr, Arc_IPdu->ComIPduDataPtr, IPdu->ComIPduSize);\r
                */\r
 \r
-               ComEcoreConfig.OutgoingPdu.SduLength = ComConfig->ComIPdu[ComTxPduId].ComIPduSize;\r
-               memcpy((void *)ComEcoreConfig.OutgoingPdu.SduDataPtr, EcoreIPdu->ComIPduDataPtr, IPdu->ComIPduSize);\r
+               Com_Arc_Config.OutgoingPdu.SduLength = ComConfig->ComIPdu[ComTxPduId].ComIPduSize;\r
+               memcpy((void *)Com_Arc_Config.OutgoingPdu.SduDataPtr, Arc_IPdu->ComIPduDataPtr, IPdu->ComIPduSize);\r
                // Check callout status\r
                if (IPdu->ComIPduCallout != NULL) {\r
-                       if (!IPdu->ComIPduCallout(ComTxPduId, EcoreIPdu->ComIPduDataPtr)) {\r
+                       if (!IPdu->ComIPduCallout(ComTxPduId, Arc_IPdu->ComIPduDataPtr)) {\r
                                // TODO Report error to DET.\r
                                // Det_ReportError();\r
                                return;\r
@@ -168,11 +168,11 @@ void Com_TriggerIPduSend(PduIdType ComTxPduId) {
                }\r
 \r
                // Send IPdu!\r
-               if (PduR_ComTransmit(ComTxPduId, &ComEcoreConfig.OutgoingPdu) == E_OK) {\r
+               if (PduR_ComTransmit(ComTxPduId, &Com_Arc_Config.OutgoingPdu) == E_OK) {\r
                        // Clear all update bits for the contained signals\r
-                       for (int i = 0; i < EcoreIPdu->NComIPduSignalRef; i++) {\r
-                               if (IPdu->ComIPduSignalRef[i]->ComSignalEcoreUseUpdateBit) {\r
-                                       clearBit(EcoreIPdu->ComIPduDataPtr, IPdu->ComIPduSignalRef[i]->ComUpdateBitPosition);\r
+                       for (int i = 0; i < Arc_IPdu->NComIPduSignalRef; i++) {\r
+                               if (IPdu->ComIPduSignalRef[i]->ComSignalArcUseUpdateBit) {\r
+                                       clearBit(Arc_IPdu->ComIPduDataPtr, IPdu->ComIPduSignalRef[i]->ComUpdateBitPosition);\r
                                }\r
                        }\r
                }\r
@@ -181,7 +181,7 @@ void Com_TriggerIPduSend(PduIdType ComTxPduId) {
                //free(PduInfoPackage.SduDataPtr);\r
 \r
                // Reset miminum delay timer.\r
-               EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduMinimumDelayTimer = IPdu->ComTxIPdu.ComTxIPduMinimumDelayFactor;\r
+               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduMinimumDelayTimer = IPdu->ComTxIPdu.ComTxIPduMinimumDelayFactor;\r
 \r
        } else {\r
                //DEBUG(DEBUG_MEDIUM, "failed (MDT)!\n", ComTxPduId);\r
@@ -192,10 +192,10 @@ Std_ReturnType Com_RxIndication(PduIdType ComRxPduId, const uint8* SduPtr) {
        PduIdCheck(ComRxPduId, 0x14, E_NOT_OK);\r
 \r
        ComGetIPdu(ComRxPduId);\r
-       ComGetEcoreIPdu(ComRxPduId);\r
+       ComGetArcIPdu(ComRxPduId);\r
 \r
        // If Ipdu is stopped\r
-       if (!EcoreIPdu->ComEcoreIpduStarted) {\r
+       if (!Arc_IPdu->Com_Arc_IpduStarted) {\r
                return E_OK;\r
        }\r
 \r
@@ -209,29 +209,29 @@ Std_ReturnType Com_RxIndication(PduIdType ComRxPduId, const uint8* SduPtr) {
        }\r
 \r
        // Copy IPDU data\r
-       memcpy(EcoreIPdu->ComIPduDataPtr, SduPtr, IPdu->ComIPduSize);\r
+       memcpy(Arc_IPdu->ComIPduDataPtr, SduPtr, IPdu->ComIPduSize);\r
 \r
        // For each signal.\r
        const ComSignal_type *signal;\r
        for (int i = 0; IPdu->ComIPduSignalRef[i] != NULL; i++) {\r
                signal = IPdu->ComIPduSignalRef[i];\r
-               ComGetEcoreSignal(signal->ComHandleId);\r
+               ComGetArcSignal(signal->ComHandleId);\r
 \r
                // If this signal uses an update bit, then it is only considered if this bit is set.\r
-               if (!signal->ComSignalEcoreUseUpdateBit ||\r
-                       (signal->ComSignalEcoreUseUpdateBit && testBit(EcoreIPdu->ComIPduDataPtr, signal->ComUpdateBitPosition))) {\r
+               if (!signal->ComSignalArcUseUpdateBit ||\r
+                       (signal->ComSignalArcUseUpdateBit && testBit(Arc_IPdu->ComIPduDataPtr, signal->ComUpdateBitPosition))) {\r
 \r
                        if (signal->ComTimeoutFactor > 0) { // If reception deadline monitoring is used.\r
                                // Reset the deadline monitoring timer.\r
-                               EcoreSignal->ComEcoreDeadlineCounter = signal->ComTimeoutFactor;\r
+                               Arc_Signal->Com_Arc_DeadlineCounter = signal->ComTimeoutFactor;\r
                        }\r
 \r
                        /*\r
                        // Zero new filter value.\r
-                       IPdu->ComIPduSignalRef[i]->ComFilter.ComFilterEcoreNewValue = 0;\r
+                       IPdu->ComIPduSignalRef[i]->ComFilter.ComFilterArcNewValue = 0;\r
 \r
                        //Fix this!!!\r
-                       Com_CopyFromSignal(IPdu->ComIPduSignalRef[i], &IPdu->ComIPduSignalRef[i]->ComFilter.ComFilterEcoreNewValue);\r
+                       Com_CopyFromSignal(IPdu->ComIPduSignalRef[i], &IPdu->ComIPduSignalRef[i]->ComFilter.ComFilterArcNewValue);\r
                        */\r
                        // Perform filtering\r
                        //if (Com_Filter(IPdu->ComIPduSignalRef[i])) {\r
@@ -245,7 +245,7 @@ Std_ReturnType Com_RxIndication(PduIdType ComRxPduId, const uint8* SduPtr) {
 \r
                                } else {\r
                                        // Signal processing mode is DEFERRED, mark the signal as updated.\r
-                                       EcoreSignal->ComSignalUpdated = 1;\r
+                                       Arc_Signal->ComSignalUpdated = 1;\r
                                }\r
                        //}\r
                } else {\r
@@ -264,28 +264,28 @@ void Com_TxConfirmation(PduIdType ComTxPduId) {
 Std_ReturnType Com_SendSignalGroup(Com_SignalGroupIdType SignalGroupId) {\r
 //#warning Com_SendSignalGroup should be performed atomically. Should we disable interrupts here?\r
        ComGetSignal(SignalGroupId);\r
-       ComGetEcoreSignal(SignalGroupId);\r
-       ComGetEcoreIPdu(EcoreSignal->ComIPduHandleId);\r
-       ComGetIPdu(EcoreSignal->ComIPduHandleId);\r
+       ComGetArcSignal(SignalGroupId);\r
+       ComGetArcIPdu(Arc_Signal->ComIPduHandleId);\r
+       ComGetIPdu(Arc_Signal->ComIPduHandleId);\r
 \r
 \r
        // Copy shadow buffer to Ipdu data space\r
        const ComGroupSignal_type *groupSignal;\r
        for (int i = 0; Signal->ComGroupSignal[i] != NULL; i++) {\r
                groupSignal = Signal->ComGroupSignal[i];\r
-               Com_CopyData(EcoreIPdu->ComIPduDataPtr, EcoreSignal->ComEcoreShadowBuffer,  groupSignal->ComBitSize, groupSignal->ComBitPosition, groupSignal->ComBitPosition);\r
+               Com_CopyData(Arc_IPdu->ComIPduDataPtr, Arc_Signal->Com_Arc_ShadowBuffer,  groupSignal->ComBitSize, groupSignal->ComBitPosition, groupSignal->ComBitPosition);\r
        }\r
 \r
        // If the signal has an update bit. Set it!\r
-       if (Signal->ComSignalEcoreUseUpdateBit) {\r
-               setBit(EcoreIPdu->ComIPduDataPtr, Signal->ComUpdateBitPosition);\r
+       if (Signal->ComSignalArcUseUpdateBit) {\r
+               setBit(Arc_IPdu->ComIPduDataPtr, Signal->ComUpdateBitPosition);\r
        }\r
 \r
        /*\r
         * If signal has triggered transmit property, trigger a transmission!\r
         */\r
        if (Signal->ComTransferProperty == TRIGGERED) {\r
-               EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduNumberOfRepetitionsLeft = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeNumberOfRepetitions + 1;\r
+               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduNumberOfRepetitionsLeft = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeNumberOfRepetitions + 1;\r
        }\r
 \r
        return E_OK;\r
@@ -295,14 +295,14 @@ Std_ReturnType Com_SendSignalGroup(Com_SignalGroupIdType SignalGroupId) {
 Std_ReturnType Com_ReceiveSignalGroup(Com_SignalGroupIdType SignalGroupId) {\r
 //#warning Com_ReceiveSignalGroup should be performed atomically. Should we disable interrupts here?\r
        ComGetSignal(SignalGroupId);\r
-       ComGetEcoreSignal(SignalGroupId);\r
-       ComGetEcoreIPdu(EcoreSignal->ComIPduHandleId);\r
+       ComGetArcSignal(SignalGroupId);\r
+       ComGetArcIPdu(Arc_Signal->ComIPduHandleId);\r
 \r
        // Copy Ipdu data buffer to shadow buffer.\r
        const ComGroupSignal_type *groupSignal;\r
        for (int i = 0; Signal->ComGroupSignal[i] != NULL; i++) {\r
                groupSignal = Signal->ComGroupSignal[i];\r
-               Com_CopyData(EcoreSignal->ComEcoreShadowBuffer, EcoreIPdu->ComIPduDataPtr, groupSignal->ComBitSize, groupSignal->ComBitPosition, groupSignal->ComBitPosition);\r
+               Com_CopyData(Arc_Signal->Com_Arc_ShadowBuffer, Arc_IPdu->ComIPduDataPtr, groupSignal->ComBitSize, groupSignal->ComBitPosition, groupSignal->ComBitPosition);\r
        }\r
 \r
 \r
@@ -311,12 +311,12 @@ Std_ReturnType Com_ReceiveSignalGroup(Com_SignalGroupIdType SignalGroupId) {
 \r
 void Com_UpdateShadowSignal(Com_SignalIdType SignalId, const void *SignalDataPtr) {\r
        ComGetGroupSignal(SignalId);\r
-       ComGetEcoreGroupSignal(SignalId);\r
-       Com_CopyData(EcoreGroupSignal->ComEcoreShadowBuffer, SignalDataPtr, GroupSignal->ComBitSize, GroupSignal->ComBitPosition, 0);\r
+       ComGetArcGroupSignal(SignalId);\r
+       Com_CopyData(Arc_GroupSignal->Com_Arc_ShadowBuffer, SignalDataPtr, GroupSignal->ComBitSize, GroupSignal->ComBitPosition, 0);\r
 }\r
 \r
 void Com_ReceiveShadowSignal(Com_SignalIdType SignalId, void *SignalDataPtr) {\r
        ComGetGroupSignal(SignalId);\r
-       ComGetEcoreGroupSignal(SignalId);\r
-       Com_CopyData(SignalDataPtr, EcoreGroupSignal->ComEcoreShadowBuffer, GroupSignal->ComBitSize, 0, GroupSignal->ComBitPosition);\r
+       ComGetArcGroupSignal(SignalId);\r
+       Com_CopyData(SignalDataPtr, Arc_GroupSignal->Com_Arc_ShadowBuffer, GroupSignal->ComBitSize, 0, GroupSignal->ComBitPosition);\r
 }\r
index c5dc3bf653af7297fcaed3c664e00bbd2bc18a9c..6ab1207ec964b84f8e64e374936bb9c67595f791 100644 (file)
 void Com_MainFunctionRx() {\r
        //DEBUG(DEBUG_MEDIUM, "Com_MainFunctionRx() excecuting\n");\r
        const ComSignal_type *signal;\r
-       for (int i = 0; !ComConfig->ComSignal[i].ComEcoreEOL; i++) {\r
+       for (int i = 0; !ComConfig->ComSignal[i].Com_Arc_EOL; i++) {\r
                signal = &ComConfig->ComSignal[i];\r
-               ComGetEcoreSignal(signal->ComHandleId);\r
-               ComGetEcoreIPdu(EcoreSignal->ComIPduHandleId);\r
+               ComGetArcSignal(signal->ComHandleId);\r
+               ComGetArcIPdu(Arc_Signal->ComIPduHandleId);\r
 \r
                // Monitor signal reception deadline\r
-               if (EcoreIPdu->ComEcoreIpduStarted && EcoreSignal->ComTimeoutFactor > 0) {\r
+               if (Arc_IPdu->Com_Arc_IpduStarted && Arc_Signal->ComTimeoutFactor > 0) {\r
 \r
                        // Decrease deadline monitoring timer.\r
-                       timerDec(EcoreSignal->ComEcoreDeadlineCounter);\r
+                       timerDec(Arc_Signal->Com_Arc_DeadlineCounter);\r
 \r
                        // Check if a timeout has occurred.\r
-                       if (EcoreSignal->ComEcoreDeadlineCounter == 0) {\r
+                       if (Arc_Signal->Com_Arc_DeadlineCounter == 0) {\r
                                if (signal->ComRxDataTimeoutAction == COM_TIMEOUT_DATA_ACTION_REPLACE) {\r
                                        // Replace signal data.\r
                                        uint32 signalInitData;\r
                                        memset(&signalInitData, signal->ComSignalInitValue, sizeof(uint32));\r
 \r
-                                       Com_CopyData(EcoreIPdu->ComIPduDataPtr, &signalInitData, signal->ComBitSize, signal->ComBitPosition, 0);\r
+                                       Com_CopyData(Arc_IPdu->ComIPduDataPtr, &signalInitData, signal->ComBitSize, signal->ComBitPosition, 0);\r
 \r
                                }\r
 \r
@@ -61,13 +61,13 @@ void Com_MainFunctionRx() {
                                }\r
 \r
                                // Restart timer\r
-                               EcoreSignal->ComEcoreDeadlineCounter = EcoreSignal->ComTimeoutFactor;\r
+                               Arc_Signal->Com_Arc_DeadlineCounter = Arc_Signal->ComTimeoutFactor;\r
                        }\r
                }\r
 \r
-               if (EcoreSignal->ComSignalUpdated) {\r
+               if (Arc_Signal->ComSignalUpdated) {\r
                        ComConfig->ComSignal[i].ComNotification();\r
-                       EcoreSignal->ComSignalUpdated = 0;\r
+                       Arc_Signal->ComSignalUpdated = 0;\r
                }\r
        }\r
 }\r
@@ -77,65 +77,65 @@ void Com_MainFunctionTx() {
        //DEBUG(DEBUG_MEDIUM, "Com_MainFunctionTx() excecuting\n");\r
        // Decrease timers.\r
        const ComIPdu_type *IPdu;\r
-       for (int i = 0; !ComConfig->ComIPdu[i].ComEcoreEOL; i++) {\r
+       for (int i = 0; !ComConfig->ComIPdu[i].Com_Arc_EOL; i++) {\r
                IPdu = &ComConfig->ComIPdu[i];\r
-               ComGetEcoreIPdu(i);\r
+               ComGetArcIPdu(i);\r
 \r
                // Is this a IPdu that should be transmitted?\r
-               if (IPdu->ComIPduDirection == SEND && EcoreIPdu->ComEcoreIpduStarted) {\r
+               if (IPdu->ComIPduDirection == SEND && Arc_IPdu->Com_Arc_IpduStarted) {\r
                        // Decrease minimum delay timer\r
-                       timerDec(EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduMinimumDelayTimer);\r
+                       timerDec(Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduMinimumDelayTimer);\r
 \r
                        // If IPDU has periodic or mixed transmission mode.\r
                        if (IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeMode == PERIODIC\r
                                || IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeMode == MIXED) {\r
 \r
-                               timerDec(EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeTimePeriodTimer);\r
+                               timerDec(Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeTimePeriodTimer);\r
 \r
                                // Is it time for a direct transmission?\r
                                if (IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeMode == MIXED\r
-                                       && EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduNumberOfRepetitionsLeft > 0) {\r
+                                       && Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduNumberOfRepetitionsLeft > 0) {\r
 \r
-                                       timerDec(EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeRepetitionPeriodTimer);\r
+                                       timerDec(Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeRepetitionPeriodTimer);\r
 \r
                                        // Is it time for a transmission?\r
-                                       if (EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeRepetitionPeriodTimer == 0\r
-                                               && EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
+                                       if (Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeRepetitionPeriodTimer == 0\r
+                                               && Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
 \r
                                                Com_TriggerIPduSend(IPdu->ComIPduRxHandleId);\r
 \r
                                                // Reset periodic timer\r
-                                               EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeRepetitionPeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeRepetitionPeriodFactor;\r
+                                               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeRepetitionPeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeRepetitionPeriodFactor;\r
 \r
                                                // Register this nth-transmission.\r
-                                               EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduNumberOfRepetitionsLeft--;\r
+                                               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduNumberOfRepetitionsLeft--;\r
                                        }\r
                                }\r
 \r
                                // Is it time for a cyclic transmission?\r
-                               if (EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeTimePeriodTimer == 0 && EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
+                               if (Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeTimePeriodTimer == 0 && Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
 \r
                                        Com_TriggerIPduSend(IPdu->ComIPduRxHandleId); // Send IPDU!\r
 \r
                                        // Reset periodic timer.\r
-                                       EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeTimePeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeTimePeriodFactor;\r
+                                       Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeTimePeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeTimePeriodFactor;\r
                                }\r
 \r
                        // If IPDU has direct transmission mode.\r
                        } else if (IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeMode == DIRECT) {\r
                                // Do we need to transmit anything?\r
-                               if (EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduNumberOfRepetitionsLeft > 0) {\r
-                                       timerDec(EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeRepetitionPeriodTimer);\r
+                               if (Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduNumberOfRepetitionsLeft > 0) {\r
+                                       timerDec(Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeRepetitionPeriodTimer);\r
 \r
                                        // Is it time for a transmission?\r
-                                       if (EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeRepetitionPeriodTimer == 0 && EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
+                                       if (Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeRepetitionPeriodTimer == 0 && Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduMinimumDelayTimer == 0) {\r
                                                Com_TriggerIPduSend(IPdu->ComIPduRxHandleId);\r
 \r
                                                // Reset periodic timer\r
-                                               EcoreIPdu->ComEcoreTxIPduTimers.ComTxModeRepetitionPeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeRepetitionPeriodFactor;\r
+                                               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxModeRepetitionPeriodTimer = IPdu->ComTxIPdu.ComTxModeTrue.ComTxModeRepetitionPeriodFactor;\r
 \r
                                                // Register this nth-transmission.\r
-                                               EcoreIPdu->ComEcoreTxIPduTimers.ComTxIPduNumberOfRepetitionsLeft--;\r
+                                               Arc_IPdu->Com_Arc_TxIPduTimers.ComTxIPduNumberOfRepetitionsLeft--;\r
                                        }\r
                                }\r
 \r
@@ -148,7 +148,7 @@ void Com_MainFunctionTx() {
 \r
        // Send scheduled packages.\r
        // Cyclic\r
-       for (int i = 0; !ComConfig->ComIPdu[i].ComEcoreEOL; i++) {\r
+       for (int i = 0; !ComConfig->ComIPdu[i].Com_Arc_EOL; i++) {\r
                if (ComConfig->ComIPdu[i].ComIPduDirection == SEND) {\r
 \r
                }\r
index de68bbc7830c24619c63f550bcffcb65cccc5f5e..ab7f19ce7f847dbfc476f398994d337e9fbb693f 100644 (file)
@@ -34,9 +34,9 @@ void Com_CopyFromSignal(const ComSignal_type *signal, void *Destination) {
        uint8 destByte;\r
 \r
        // Pointer to a byte of the source and dest respectively.\r
-       ComGetEcoreSignal(signal->ComHandleId);\r
-       ComGetEcoreIPdu(EcoreSignal->ComIPduHandleId);\r
-       uint8 *source = (uint8 *)EcoreIPdu->ComIPduDataPtr;\r
+       ComGetArcSignal(signal->ComHandleId);\r
+       ComGetArcIPdu(Arc_Signal->ComIPduHandleId);\r
+       uint8 *source = (uint8 *)Arc_IPdu->ComIPduDataPtr;\r
        uint8 *dest = (uint8 *)Destination;\r
 \r
        uint8 signBit = 0;\r
@@ -90,9 +90,9 @@ void Com_CopyFromSignal(const ComSignal_type *signal, void *Destination) {
 \r
 \r
 void Com_CopyToSignal(ComSignal_type *signal, const void *Source) {\r
-       ComGetEcoreSignal(signal->ComHandleId);\r
-       ComGetEcoreIPdu(EcoreSignal->ComIPduHandleId);\r
-       Com_CopyData(EcoreIPdu->ComIPduDataPtr, Source, signal->ComBitSize, signal->ComBitPosition, 0);\r
+       ComGetArcSignal(signal->ComHandleId);\r
+       ComGetArcIPdu(Arc_Signal->ComIPduHandleId);\r
+       Com_CopyData(Arc_IPdu->ComIPduDataPtr, Source, signal->ComBitSize, signal->ComBitPosition, 0);\r
 }\r
 \r
 uint8 Com_CopyData(void *Destination, const void *Source, uint8 numBits, uint8 destOffset, uint8 sourceOffset) {\r
@@ -126,7 +126,7 @@ uint8 Com_CopyData(void *Destination, const void *Source, uint8 numBits, uint8 d
 \r
 \r
 uint8 Com_Filter(ComSignal_type *signal) {\r
-       ComGetEcoreSignal(signal->ComHandleId);\r
+       ComGetArcSignal(signal->ComHandleId);\r
        const ComFilter_type * filter = &signal->ComFilter;\r
        uint8 success = 0;\r
        if (filter->ComFilterAlgorithm == ALWAYS) {\r
@@ -143,20 +143,20 @@ uint8 Com_Filter(ComSignal_type *signal) {
                        success = filter->ComFilterPeriodFactor;\r
 \r
                } else {\r
-                       if (filter->ComFilterEcoreN == 0) {\r
+                       if (filter->ComFilterArcN == 0) {\r
                                success = 1;\r
                        } else {\r
                                success = 0;\r
                        }\r
-                       EcoreSignal->ComFilter.ComFilterEcoreN++;\r
-                       if (filter->ComFilterEcoreN >= filter->ComFilterPeriodFactor) {\r
-                               EcoreSignal->ComFilter.ComFilterEcoreN = 0;\r
+                       Arc_Signal->ComFilter.ComFilterArcN++;\r
+                       if (filter->ComFilterArcN >= filter->ComFilterPeriodFactor) {\r
+                               Arc_Signal->ComFilter.ComFilterArcN = 0;\r
                        }\r
                }\r
 \r
        } else if (filter->ComFilterAlgorithm == NEW_IS_OUTSIDE) {\r
-               if ((filter->ComFilterMin > filter->ComFilterEcoreNewValue)\r
-                               || (filter->ComFilterEcoreNewValue > filter->ComFilterMax)) {\r
+               if ((filter->ComFilterMin > filter->ComFilterArcNewValue)\r
+                               || (filter->ComFilterArcNewValue > filter->ComFilterMax)) {\r
                        success = 1;\r
                } else {\r
                        success = 0;\r
@@ -164,8 +164,8 @@ uint8 Com_Filter(ComSignal_type *signal) {
 \r
 \r
        } else if (filter->ComFilterAlgorithm == NEW_IS_WITHIN) {\r
-               if (filter->ComFilterMin <= filter->ComFilterEcoreNewValue\r
-                && filter->ComFilterEcoreNewValue <= filter->ComFilterMax) {\r
+               if (filter->ComFilterMin <= filter->ComFilterArcNewValue\r
+                && filter->ComFilterArcNewValue <= filter->ComFilterMax) {\r
                        success = 1;\r
                } else {\r
                        success = 0;\r
@@ -173,22 +173,22 @@ uint8 Com_Filter(ComSignal_type *signal) {
 \r
 \r
        } else if (filter->ComFilterAlgorithm == MASKED_NEW_DIFFERS_MASKED_OLD) {\r
-               if ((filter->ComFilterEcoreNewValue & filter->ComFilterMask)\r
-                               != (filter->ComFilterEcoreNewValue & filter->ComFilterMask)) {\r
+               if ((filter->ComFilterArcNewValue & filter->ComFilterMask)\r
+                               != (filter->ComFilterArcNewValue & filter->ComFilterMask)) {\r
                        success = 1;\r
                } else {\r
                        success = 0;\r
                }\r
 \r
        } else if (filter->ComFilterAlgorithm == MASKED_NEW_DIFFERS_X) {\r
-               if ((filter->ComFilterEcoreNewValue & filter->ComFilterMask) != filter->ComFilterX) {\r
+               if ((filter->ComFilterArcNewValue & filter->ComFilterMask) != filter->ComFilterX) {\r
                        success = 1;\r
                } else {\r
                        success = 0;\r
                }\r
 \r
        } else if (filter->ComFilterAlgorithm == MASKED_NEW_EQUALS_X) {\r
-               if ((filter->ComFilterEcoreNewValue & filter->ComFilterMask) == filter->ComFilterX) {\r
+               if ((filter->ComFilterArcNewValue & filter->ComFilterMask) == filter->ComFilterX) {\r
                        success = 1;\r
                } else {\r
                        success = 0;\r
@@ -196,7 +196,7 @@ uint8 Com_Filter(ComSignal_type *signal) {
        }\r
 \r
        if (success) {\r
-               EcoreSignal->ComFilter.ComFilterEcoreOldValue = filter->ComFilterEcoreNewValue;\r
+               Arc_Signal->ComFilter.ComFilterArcOldValue = filter->ComFilterArcNewValue;\r
                return 1;\r
        } else return 0;\r
 }\r
index bd3860579e549535bdcd061de2f65ae44f0aae31..caf66f38b5ad0ed90e2442ebf673228e3b161fa6 100644 (file)
@@ -85,7 +85,7 @@ void PduR_Init (const PduR_PBConfigType* ConfigPtr) {
        int bufferNr = 0;\r
        int i = 0;\r
        PduRRoutingPath_type *path;\r
-       for (i = 0; !PduRConfig->PduRRoutingTable->PduRRoutingPath[i].PduREcoreEOL && !failed; i++) {\r
+       for (i = 0; !PduRConfig->PduRRoutingTable->PduRRoutingPath[i].PduR_Arc_EOL && !failed; i++) {\r
                PduRConfig->PduRRoutingTable->NRoutingPaths++;\r
                path = &PduRConfig->PduRRoutingTable->PduRRoutingPath[i];\r
 \r
index 639919c65e200fdb6198ded73666bde2b799f8a8..a47eb049ccc90c5dd947e04e8e591406a420e2a4 100644 (file)
@@ -79,7 +79,7 @@ typedef struct {
 \r
 typedef struct {\r
        /*\r
-        * Not part of autosar standard. Added by Ecore.
+        * Not part of autosar standard. Added by ArcCore.
         */\r
        int BufferId;\r
        PduR_DataProvisionType BufferType;\r
@@ -156,7 +156,7 @@ typedef struct {
 \r
 \r
 typedef struct {\r
-       uint8 PduREcoreDummy; // Needed in order to compile without errors.\r
+       uint8 PduR_Arc_Dummy; // Needed in order to compile without errors.\r
        PduRDefaultValueElement_type *PduRDefaultValueElement;\r
 } PduRDefaultValue_type;\r
 \r
@@ -165,7 +165,7 @@ typedef struct {
         * Not part of standard
         */\r
        PduR_FctPtrType *FctPtrs;\r
-       uint8 PduREcoreEOL;\r
+       uint8 PduR_Arc_EOL;\r
        uint8 PduR_GatewayMode;\r
 \r
        /*\r
diff --git a/communication/PduR/makefile_old b/communication/PduR/makefile_old
deleted file mode 100644 (file)
index 87a8c53..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-\r
-\r
-obj-y += xfls_test.o\r
-obj-y += lin_test.o\r
-\r
-VPATH +=  $(ROOTDIR)/arch/$(ARCH)/delivery/mpc5500_h7f/source\r
-inc-y +=  $(ROOTDIR)/arch/$(ARCH)/delivery/mpc5500_h7f/include\r
-\r
-\r
-#linkfile\r
-ldcmdfile-$(CFG_ARCH_ppc55xx) = -T $(ROOTDIR)/arch/$(ARCH)/scripts/linkscript_gcc.ldf\r
-\r
-build-exe-y = ../../../$(target)_$(ARCH).$(TE)\r
-\r
-\r
-\r
-\r
-INCLUDE = $(ROOTDIR)/include\r
-DRIVER_INCLUDE = $(ROOTDIR)/drivers/include\r
-TYPEDEFS_INCLUDE = $(ROOTDIR)/arch/ppc55xx/drivers\r
-BOARD_INCLUDE = $(ROOTDIR)/boards/mpc5516it/config\r
-DEM_INCLUDE = $(ROOTDIR)/drivers/Dem\r
-\r
-gcc -I$(INCLUDE) -I$(DRIVER_INCLUDE) -I$(TYPEDEFS_INCLUDE) -I$(BOARD_INCLUDE) -I$(DEM_INCLUDE) -o$(ROOTDIR)/drivers/PduR/PduR $(ROOTDIR)/drivers/Det/Det.c $(ROOTDIR)/drivers/PduR/PduR_PbCfg.c $(ROOTDIR)/drivers/PduR/PduR_Com.c $(ROOTDIR)/drivers/PduR/PduR_CanIf.c $(ROOTDIR)/drivers/PduR/PduR_LinIf.c $(ROOTDIR)/drivers/PduR/PduR_Ipdum.c $(ROOTDIR)/drivers/PduR/PduR.c $(ROOTDIR)/drivers/PduR/PduR_Test.c\r
index c33e8caa66dbbbd5d347efad778ed0bbe1c6b942..fce17d198acf16c700f188182285c31865669006 100644 (file)
@@ -28,7 +28,7 @@
 \r
 \r
 static uint8 index[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};\r
-#define SINE_TABLE_SIZE 38\r
+#define SINE_TABLE_SIZE 39
 const Pwm_PeriodType sine_table[SINE_TABLE_SIZE] = {0x4a03, 0x53c6, 0x5d0e, 0x659e, 0x6d41, 0x73c6,\r
                0x7906, 0x7cde, 0x7f36, 0x7fff, 0x7f36, 0x7cde, 0x7906, 0x73c6,\r
                0x6d41, 0x659e, 0x5d0e, 0x53c6, 0x4a03, 0x4000, 0x35fc, 0x2c39,\r
index 48d26c8e22537f1ea41315a00db3531da489efd9..9c063939e660ca440fd6f84c5a059bb1afa9549d 100644 (file)
 
 
 #include "Os.h"
+#include "Mcu.h"
 #include <stdio.h>
 #include <assert.h>
 #define USE_TRACE      1
 #include "Trace.h"
-//#include "Hooks.h"
 
 
 #if 0
@@ -34,7 +34,6 @@
 #if !defined(USE_SIMULATOR)
 // Quick fix
 //#include "kernel_offset.h"
-#include "Mcu.h"
 
 extern uint8_t pcb_list[];
 
index 61060174643c6468237ea5a68ed51985218d21c2..e193eb7db5354b222ac12125d8c3a6c89084cfda 100644 (file)
 /*\r
  * RTE.c\r
  *\r
- *  Created on: 2009-jul-10\r
- *      Author: rosa\r
+ *      Author: tojo
  */\r
 \r
 #include "Dio.h"\r
-\r
+#include "Rte.h"
 \r
 void RTE_blinker_blink(uint8 arg){\r
-       Dio_WriteChannel(LED_K2, arg);\r
+       Dio_WriteChannel(LED_CHANNEL, arg);
 }\r
index 5c14ac3d5f01f26f01efab2c6b547e0d8e5ab7c8..5e88c1621c8d68fe0bffc289c838476e34f09e7a 100644 (file)
 
 
 
-
-
-
 /*\r
  * RTE.h\r
  *\r
- *  Created on: 2009-jul-10\r
- *      Author: rosa\r
+ *      Author: tojo
  */\r
 \r
 #ifndef RTE_H_\r
 #define RTE_H_\r
 #include "RTE_blinker.h"\r
+
+// Select DIO channel
+#if defined(CFG_BRD_MPC5516IT)
+#define LED_CHANNEL            LEDS_LED5
+
+#elif defined(CFG_BRD_MPC5567QRTECH)
+#define LED_CHANNEL            LED_K2
+
+#else
+#warning "Unknown board or CFG_BRD_* undefined"
+
+#endif
 \r
 #endif /* RTE_H_ */\r
diff --git a/examples/blinker_node/blinker_node.arxml b/examples/blinker_node/blinker_node.arxml
new file mode 100644 (file)
index 0000000..96e80a0
--- /dev/null
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.0">\r
+  <TOP-LEVEL-PACKAGES>\r
+    <AR-PACKAGE>\r
+      <SHORT-NAME>blinker_node</SHORT-NAME>\r
+      <CATEGORY>EcuConfiguration</CATEGORY>\r
+      <ADMIN-DATA>\r
+        <DOC-REVISIONS>\r
+          <DOC-REVISION>\r
+            <ISSUED-BY/>\r
+          </DOC-REVISION>\r
+        </DOC-REVISIONS>\r
+        <SDGS>\r
+          <SDG GID="Autocore::Options">\r
+            <SD GID="ARCCORE_FORMAT_VERSION">1.1.0</SD>\r
+            <SD GID="MCU">Undefined MCU</SD>\r
+            <SD GID="LOCAL_VALIDATION">ON</SD>\r
+            <SD GID="AUTHOR"></SD>\r
+            <SD GID="COPYRIGHT"></SD>\r
+            <SD GID="GENDIR"></SD>\r
+          </SDG>\r
+        </SDGS>\r
+      </ADMIN-DATA>\r
+      <ELEMENTS>\r
+        <ECU-CONFIGURATION>\r
+          <MODULE-REFS>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/blinker_node/Os</MODULE-REF>\r
+          </MODULE-REFS>\r
+        </ECU-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Os</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Os</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsTick</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+                  <VALUE>65535</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+                  <VALUE>OS-TICK</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsOS</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+                  <VALUE>1000</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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>true</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
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask25</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask100</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask10</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>3</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Startup</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>4</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask10</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/blinker_node/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/blinker_node/Os/bTask10</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask25</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/blinker_node/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/blinker_node/Os/bTask25</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask100</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/blinker_node/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/blinker_node/Os/bTask100</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+      </ELEMENTS>\r
+    </AR-PACKAGE>\r
+  </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>
\ No newline at end of file
index 1a030272239fbad85ebec637f7bc4880b4d09f16..d6ff234547655248ba268f6f7f8718c97e9d99ce 100644 (file)
@@ -96,20 +96,22 @@ GEN_IRQ_PRIORITY_TABLE_HEAD {};
 \r
 // --- COUNTERS ---\r
 GEN_COUNTER_HEAD {\r
-       GEN_COUNTER(    OS_TICK_COUNTER,\r
-                                       "OS_TICK_COUNTER",\r
+       GEN_COUNTER(    COUNTER_ID_OsTick,
+                                       "COUNTER_ID_OsTick",
                                        COUNTER_TYPE_HARD,\r
                                        COUNTER_UNIT_NANO,\r
                                        0xffff,1,1,0 ),\r
-};\r
+};
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;
 \r
 // --- ALARMS ---\r
 GEN_ALARM_HEAD {\r
        {\r
                .expire_val     = 10,\r
                .active         = FALSE,\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],
+               .counter_id = COUNTER_ID_OsTick,
                .action =\r
                {\r
                                .type = ALARM_ACTION_ACTIVATETASK,\r
@@ -120,8 +122,8 @@ GEN_ALARM_HEAD {
        {\r
                .expire_val     = 25,\r
                .active         = FALSE,\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],
+               .counter_id = COUNTER_ID_OsTick,
                .action =\r
                {\r
                                .type = ALARM_ACTION_ACTIVATETASK,\r
@@ -132,8 +134,8 @@ GEN_ALARM_HEAD {
        {\r
                .expire_val     = 100,\r
                .active         = FALSE,\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],
+               .counter_id = COUNTER_ID_OsTick,
                .action =\r
                {\r
                                .type = ALARM_ACTION_ACTIVATETASK,\r
@@ -148,13 +150,13 @@ GEN_HOOKS( StartupHook, ProtectionHook, ShutdownHook, ErrorHook, PreTaskHook, Po
 \r
 // --- MISC ---\r
 uint32 os_dbg_mask = 0;\r
-\r
-//     D_MASTER_PRINT |\\r
-//     D_ISR_MASTER_PRINT |\\r
-//     D_STDOUT |\\r
-//     D_ISR_STDOUT |\r
-//     D_ALARM | D_TASK;\r
-\r
+/*
+       D_MASTER_PRINT |\
+       D_ISR_MASTER_PRINT |\
+       D_STDOUT |\
+       D_ISR_STDOUT |\
+       D_ALARM | D_TASK;
+*/
 \r
 #include "os_config_funcs.h"\r
 \r
index 9a1ebc21496e141af5d4773cea8f4752aeefdff7..b052e8ee914ab3219abca49416153e4d266759b8 100644 (file)
@@ -47,6 +47,9 @@ void Startup( void );
 void bTask10( void );\r
 void bTask25( void );\r
 void bTask100( void );\r
+
+// COUNTERS
+#define COUNTER_ID_OsTick                                      0
 \r
 // ALARMS\r
 #define ALARM_USE\r
index 760f2979134942dc1bd3cdef03a8c1e39b90baaa..b5d97a074c95541837879984656e2036ae70698e 100644 (file)
@@ -88,20 +88,22 @@ GEN_IRQ_PRIORITY_TABLE_HEAD {};
 \r
 // --- COUNTERS ---\r
 GEN_COUNTER_HEAD {\r
-       GEN_COUNTER(    OS_TICK_COUNTER,\r
-                                       "OS_TICK_COUNTER",\r
+       GEN_COUNTER(    COUNTER_ID_OsTick,\r
+                                       "COUNTER_ID_OsTick",\r
                                        COUNTER_TYPE_HARD,\r
                                        COUNTER_UNIT_NANO,\r
                                        0xffff,1,1,0 ),\r
-};\r
+};
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;\r
 \r
 // --- ALARMS ---\r
 GEN_ALARM_HEAD {\r
        {\r
                .expire_val     = 25,\r
                .active         = FALSE,\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],\r
+               .counter_id = COUNTER_ID_OsTick,\r
                .action =\r
                {\r
                                .type = ALARM_ACTION_ACTIVATETASK,\r
@@ -112,8 +114,8 @@ GEN_ALARM_HEAD {
        {\r
                .expire_val     = 100,\r
                .active         = FALSE,\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],\r
+               .counter_id = COUNTER_ID_OsTick,\r
                .action =\r
                {\r
                                .type = ALARM_ACTION_ACTIVATETASK,\r
@@ -128,13 +130,13 @@ GEN_HOOKS( StartupHook, ProtectionHook, ShutdownHook, ErrorHook, PreTaskHook, Po
 \r
 // --- MISC ---\r
 uint32 os_dbg_mask = 0;\r
-\r
-//     D_MASTER_PRINT |\\r
-//     D_ISR_MASTER_PRINT |\\r
-//     D_STDOUT |\\r
-//     D_ISR_STDOUT |\r
-//     D_ALARM | D_TASK;\r
-\r
+/*
+       D_MASTER_PRINT |\
+       D_ISR_MASTER_PRINT |\
+       D_STDOUT |\
+       D_ISR_STDOUT |
+       D_ALARM | D_TASK;
+*/
 \r
 #include "os_config_funcs.h"\r
 \r
index 262622a371a4bf21f5e4e84aa6f7e3961956fb79..77c8dd2c6d1485da5b7f59908cb8d09db1a1860e 100644 (file)
@@ -45,6 +45,9 @@ void OsIdle( void );
 void Startup( void );\r
 void bTask25( void );\r
 void bTask100( void );\r
+
+// COUNTERS
+#define COUNTER_ID_OsTick                                      0
 \r
 // ALARMS\r
 #define ALARM_USE\r
index 38e5dcb1bb34d550e6f1e879b5a1961fe0b12cdc..0bea1526ed592feb32afe75f9f6cb47d8a13b5ae 100644 (file)
@@ -37,7 +37,7 @@ const Pwm_ConfigType PwmConfig = {
                PWM_CHANNEL_CONFIG(PWM_CHANNEL_1, 3000, 0x6000, PWM_CHANNEL_PRESCALER_4, PWM_HIGH),\r
                PWM_CHANNEL_CONFIG(PWM_CHANNEL_2, 2000, 0x2000, PWM_CHANNEL_PRESCALER_2, PWM_LOW)\r
        },\r
-#if PWM_NOTIFICATION_SUPPORTED==ON\r
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON\r
        .NotificationHandlers = {\r
                        MyPwmNotificationRoutine, // PWM_CHANNEL_1\r
                        NULL                      // PWM_CHANNEL_2\r
index f1c58d5cfe041b9b6271612ccd0f99319e5f0387..f4d8e44c4edb9c581f08047f153398299365418e 100644 (file)
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  * for more details.
- * -------------------------------- Arctic Core ------------------------------*/
-
-
-
-
-
-
-
-
-/*\r
- * Pwm_Cfg.h\r
- *\r
- *  Created on: 2009-jul-09\r
- *      Author: nian\r
- */\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
 \r
 #ifndef PWM_CFG_H_\r
 #define PWM_CFG_H_\r
 \r
-/****************************************************************************\r
- * Global configuration options and defines\r
+/*
+ * PwmGeneral
  */\r
 \r
-#define ON 1\r
-#define OFF 0\r
-\r
 /*\r
  * PWM003: The detection of development errors is configurable (ON/OFF) at\r
  * pre-compile time. The switch PwmDevErorDetect shall activate or disable\r
  * the detection of all development errors\r
- */\r
-#define PWM_DEV_EROR_DETECT ON\r
-#define PWM_GET_OUTPUT_STATE ON\r
-#define PWM_STATICALLY_CONFIGURED OFF\r
-#define PWM_NOTIFICATION_SUPPORTED ON\r
+ */
+#define PWM_DEV_EROR_DETECT STD_ON\r
+#define PWM_GET_OUTPUT_STATE STD_ON\r
+#define PWM_STATICALLY_CONFIGURED STD_OFF\r
+#define PWM_NOTIFICATION_SUPPORTED STD_ON\r
 \r
-#define PWM_SET_PERIOD_AND_DUTY ON\r
+#define PWM_SET_PERIOD_AND_DUTY STD_ON\r
+
+/*
+ * PWM106: This is implementation specific but not all values may be valid
+ * within the type. This shall be chosen in order to have the most efficient
+ * implementation on a specific microcontroller platform.
+ *
+ * PWM106 => Pwm_ChannelType == eemios channel id.
+ */
+typedef uint8 Pwm_ChannelType;
+
+/*
+ * PWM070: All time units used within the API services of the PWM module shall
+ * be of the unit ticks.
+ */
+typedef uint16 Pwm_PeriodType;
+
 \r
 /*\r
  * PWM132: Switch for enabling the update of duty cycle parameter at the end\r
@@ -55,7 +54,7 @@
  *\r
  * Note: Currently only ON mode is supported.\r
  */\r
-#define PWM_DUTYCYCLE_UPDATED_ENDPERIOD ON\r
+#define PWM_DUTYCYCLE_UPDATED_ENDPERIOD STD_ON\r
 \r
 /****************************************************************************\r
  * Not defined in AUTOSAR.\r
@@ -66,7 +65,7 @@
  * Setting to ON freezes the current output state of a PWM channel when in\r
  * debug mode.\r
  */\r
-#define PWM_FREEZE_ENABLE ON\r
+#define PWM_FREEZE_ENABLE STD_ON\r
 \r
 /****************************************************************************\r
  * Enumeration of channels\r
@@ -90,5 +89,104 @@ typedef enum {
 #endif\r
     PWM_NUMBER_OF_CHANNELS = 2\r
 } Pwm_NamedChannelsType;\r
+
+typedef enum {
+       PWM_CHANNEL_PRESCALER_1=0,
+       PWM_CHANNEL_PRESCALER_2,
+       PWM_CHANNEL_PRESCALER_3,
+       PWM_CHANNEL_PRESCALER_4,
+} Pwm_ChannelPrescalerType;
+
+/*
+ * Since the AUTOSAR PWM specification uses a different unit for the duty,
+ * the following macro can be used to convert between that format and the
+ * mpc5516 format.
+ */
+#define DUTY_AND_PERIOD(_duty,_period) .duty = (_duty*_period)>>15, .period = _period
+
+#if defined(CFG_MPC5516)
+       /* Mode is buffered PWM output (OPWM) */
+       /* Mode is buffered Output PW and frequency modulation mode */
+#define PWM_EMIOS_OPWM 0x5A
+#elif defined(CFG_MPC5567)
+       /* Mode is buffered OPWM with frequency modulation (allows change of
+        * period) */
+#define PWM_EMIOS_OPWM 0x19
+#endif
+
+
+typedef struct {
+       /* Number of duty ticks */
+       uint32_t                 duty:32;
+       /* Length of period, in ticks */
+       uint32_t                 period:32;
+       /* Counter */
+       uint32_t                 counter:32;
+       /* Enable freezing the channel when in debug mode */
+       uint32_t                 freezeEnable:1;
+       /* Disable output */
+       uint32_t                 outputDisable:1;
+       /* Select which bus disables the bus
+        * TODO: Figure out how this works, i.e. what bus does it refer to? */
+       uint32_t                                 outputDisableSelect:2;
+       /* Prescale the emios clock some more? */
+       Pwm_ChannelPrescalerType prescaler:2;
+       /* Prescale the emios clock some more? */
+       uint32_t                                 usePrescaler:1;
+       /* Whether to use DMA. Currently unsupported */
+       uint32_t                                 useDma:1;
+       uint32_t                                 reserved_2:1;
+       /* Input filter. Ignored in output mode. */
+       uint32_t                                 inputFilter:4;
+       /* Input filter clock source. Ignored in output mode */
+       uint32_t                                 filterClockSelect:1;
+       /* Enable interrupts/flags on this channel? Required for DMA as well. */
+       uint32_t                                 flagEnable:1;
+       uint32_t                                 reserved_3:3;
+       /* Trigger a match on channel A */
+       uint32_t                                 forceMatchA:1;
+       /* Triggers a match on channel B */
+       uint32_t                                 forceMatchB:1;
+       uint32_t                                 reserved_4:1;
+       /* We can use different buses for the counter. Use the internal counter */
+       uint32_t                                 busSelect:2;
+       /* What edges to flag on? */
+       uint32_t                                 edgeSelect:1;
+       /* Polarity of the channel */
+       uint32_t                                 edgePolarity:1;
+       /* EMIOS mode. 0x58 for buffered output PWM */
+       uint32_t                                 mode:7;
+} Pwm_ChannelRegisterType;
+
+typedef struct {
+       Pwm_ChannelRegisterType r;
+       Pwm_ChannelType channel;
+} Pwm_ChannelConfigurationType;
+
+
+typedef struct {
+       Pwm_ChannelConfigurationType Channels[PWM_NUMBER_OF_CHANNELS];
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON
+       Pwm_NotificationHandlerType NotificationHandlers[PWM_NUMBER_OF_CHANNELS];
+#endif
+} Pwm_ConfigType;
+
+// Channel configuration macro.
+#define PWM_CHANNEL_CONFIG(_hwchannel, _period, _duty, _prescaler, _polarity) \
+    {\
+        .channel = _hwchannel,\
+        .r = {\
+            DUTY_AND_PERIOD(_duty, _period),\
+            .freezeEnable = 1,\
+            .outputDisable = 0,\
+            .usePrescaler = 1,\
+            .prescaler = _prescaler,\
+            .useDma = 0,\
+            .flagEnable = 0, /* See PWM052 */ \
+            .busSelect = 3, /* Use the internal counter bus */\
+            .edgePolarity = _polarity,\
+            .mode = PWM_EMIOS_OPWM\
+        }\
+    }
 \r
 #endif /* PWM_CFG_H_ */\r
diff --git a/examples/pwm_node/pwm_node_mpc551x.arxml b/examples/pwm_node/pwm_node_mpc551x.arxml
new file mode 100644 (file)
index 0000000..f0237d1
--- /dev/null
@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.0">\r
+  <TOP-LEVEL-PACKAGES>\r
+    <AR-PACKAGE>\r
+      <SHORT-NAME>pwm_node_mpc551x</SHORT-NAME>\r
+      <CATEGORY>EcuConfiguration</CATEGORY>\r
+      <ADMIN-DATA>\r
+        <DOC-REVISIONS>\r
+          <DOC-REVISION>\r
+            <ISSUED-BY/>\r
+          </DOC-REVISION>\r
+        </DOC-REVISIONS>\r
+        <SDGS>\r
+          <SDG GID="Autocore::Options">\r
+            <SD GID="ARCCORE_FORMAT_VERSION">1.1.0</SD>\r
+            <SD GID="MCU">MPC551x</SD>\r
+            <SD GID="LOCAL_VALIDATION">ON</SD>\r
+            <SD GID="AUTHOR"/>\r
+            <SD GID="COPYRIGHT"/>\r
+            <SD GID="GENDIR"></SD>\r
+          </SDG>\r
+        </SDGS>\r
+      </ADMIN-DATA>\r
+      <ELEMENTS>\r
+        <ECU-CONFIGURATION>\r
+          <MODULE-REFS>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Os</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Pwm</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Port</MODULE-REF>\r
+          </MODULE-REFS>\r
+        </ECU-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Os</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Os</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsOS</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+                  <VALUE>1000</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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>true</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
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask25</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask100</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Startup</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>3</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsTick</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+                  <VALUE>65535</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+                  <VALUE>OS-TICK</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask25</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/pwm_node_mpc551x/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Os/bTask25</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask100</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/pwm_node_mpc551x/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Os/bTask100</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Pwm</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Pwm</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Pwm</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmChannelConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM_CHANNEL_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelClass</DEFINITION-REF>\r
+                      <VALUE>PWM_VARIABLE_PERIOD</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelId</DEFINITION-REF>\r
+                      <VALUE>13</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmDutycycleDefault</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmIdleState</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmArcticCoreChannelPrescaler</DEFINITION-REF>\r
+                      <VALUE>PWM_CHANNEL_PRESCALER_1</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmNotification</DEFINITION-REF>\r
+                      <VALUE></VALUE>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <FLOAT-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPeriodDefault</DEFINITION-REF>\r
+                      <VALUE>0.0096</VALUE>\r
+                    </FLOAT-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPolarity</DEFINITION-REF>\r
+                      <VALUE>PWM_HIGH</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM_CHANNEL_2</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelClass</DEFINITION-REF>\r
+                      <VALUE>PWM_VARIABLE_PERIOD</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelId</DEFINITION-REF>\r
+                      <VALUE>12</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmDutycycleDefault</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmIdleState</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmArcticCoreChannelPrescaler</DEFINITION-REF>\r
+                      <VALUE>PWM_CHANNEL_PRESCALER_1</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmNotification</DEFINITION-REF>\r
+                      <VALUE></VALUE>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <FLOAT-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPeriodDefault</DEFINITION-REF>\r
+                      <VALUE>0.0032</VALUE>\r
+                    </FLOAT-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPolarity</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmConfigurationOfOptApiServices</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmDeInitApi</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmGetOutputState</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetDutyCycle</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetOutputToIdle</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetPeriodAndDuty</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmVersionInfoApi</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmGeneral</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmGeneral</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmDevErorDetect</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmDutycycleUpdatedEndperiod</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmIndex</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmNotificationSupported</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmPeriodUpdatedEndperiod</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Port</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Port</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PortConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+                  <PARAMETER-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>eMIOS[12]</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>52</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_PWM</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>eMIOS[13]</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>53</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_PWM</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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>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>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+      </ELEMENTS>\r
+    </AR-PACKAGE>\r
+  </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>
\ No newline at end of file
diff --git a/examples/pwm_node/pwm_node_mpc5567.arxml b/examples/pwm_node/pwm_node_mpc5567.arxml
new file mode 100644 (file)
index 0000000..2a94cb5
--- /dev/null
@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.0">\r
+  <TOP-LEVEL-PACKAGES>\r
+    <AR-PACKAGE>\r
+      <SHORT-NAME>pwm_node_mpc5567</SHORT-NAME>\r
+      <CATEGORY>EcuConfiguration</CATEGORY>\r
+      <ADMIN-DATA>\r
+        <DOC-REVISIONS>\r
+          <DOC-REVISION>\r
+            <ISSUED-BY/>\r
+          </DOC-REVISION>\r
+        </DOC-REVISIONS>\r
+        <SDGS>\r
+          <SDG GID="Autocore::Options">\r
+            <SD GID="ARCCORE_FORMAT_VERSION">1.1.0</SD>\r
+            <SD GID="MCU">MPC5567</SD>\r
+            <SD GID="LOCAL_VALIDATION">ON</SD>\r
+            <SD GID="AUTHOR"></SD>\r
+            <SD GID="COPYRIGHT"></SD>\r
+            <SD GID="GENDIR"></SD>\r
+          </SDG>\r
+        </SDGS>\r
+      </ADMIN-DATA>\r
+      <ELEMENTS>\r
+        <ECU-CONFIGURATION>\r
+          <MODULE-REFS>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc5567/Os</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc5567/Pwm</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc5567/Port</MODULE-REF>\r
+          </MODULE-REFS>\r
+        </ECU-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Os</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Os</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsOS</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+                  <VALUE>1000</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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>true</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
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask25</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask100</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Startup</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>3</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsTick</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+                  <VALUE>65535</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+                  <VALUE>OS-TICK</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask25</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/pwm_node_mpc5567/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc5567/Os/bTask25</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>bTask100</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/pwm_node_mpc5567/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc5567/Os/bTask100</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Pwm</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Pwm</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Pwm</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmChannelConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM_CHANNEL_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelClass</DEFINITION-REF>\r
+                      <VALUE>PWM_VARIABLE_PERIOD</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelId</DEFINITION-REF>\r
+                      <VALUE>10</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmDutycycleDefault</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmIdleState</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmArcticCoreChannelPrescaler</DEFINITION-REF>\r
+                      <VALUE>PWM_CHANNEL_PRESCALER_1</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmNotification</DEFINITION-REF>\r
+                      <VALUE></VALUE>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <FLOAT-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPeriodDefault</DEFINITION-REF>\r
+                      <VALUE>0.0096</VALUE>\r
+                    </FLOAT-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPolarity</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM_CHANNEL_2</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelClass</DEFINITION-REF>\r
+                      <VALUE>PWM_VARIABLE_PERIOD</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelId</DEFINITION-REF>\r
+                      <VALUE>12</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmDutycycleDefault</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmIdleState</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmArcticCoreChannelPrescaler</DEFINITION-REF>\r
+                      <VALUE>PWM_CHANNEL_PRESCALER_1</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmNotification</DEFINITION-REF>\r
+                      <VALUE></VALUE>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <FLOAT-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPeriodDefault</DEFINITION-REF>\r
+                      <VALUE>0.0032</VALUE>\r
+                    </FLOAT-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPolarity</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmConfigurationOfOptApiServices</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmDeInitApi</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmGetOutputState</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetDutyCycle</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetOutputToIdle</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetPeriodAndDuty</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmVersionInfoApi</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmGeneral</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmGeneral</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmDevErorDetect</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmDutycycleUpdatedEndperiod</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmIndex</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmNotificationSupported</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmPeriodUpdatedEndperiod</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Port</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Port</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PortConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+                  <PARAMETER-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>EMIOS[10]</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>189</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_PWM</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>EMIOS[12]</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>191</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_PWM</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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>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>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+      </ELEMENTS>\r
+    </AR-PACKAGE>\r
+  </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>
\ No newline at end of file
index 801b244b1531d6a475a77c87326d77d402d23a44..bdd94ef82bb0c573b3b461d0e34249f6fc2bd7fa 100644 (file)
@@ -25,7 +25,7 @@
 #include <assert.h>
 #define USE_TRACE      1
 #include "Trace.h"
-//#include "Hooks.h"
+#include "Mcu.h"
 
 
 #if 0
@@ -34,7 +34,6 @@
 #if !defined(USE_SIMULATOR)
 // Quick fix
 //#include "Kernel_Offset.h"
-#include "Mcu.h"
 
 extern uint8_t pcb_list[];
 
index d52e846bc96a1b4479f1e37e72afd4b9dbb88b22..cfd4d7d1f1cb5a91dc176dd0828f6e3bb8efec1d 100644 (file)
@@ -28,7 +28,7 @@
 #include "Trace.h"\r
 #include "Com.h"\r
 #include "Adc.h"\r
-\r
+#include "pwm_node2_helpers.h"
 \r
 void OsIdle( void ) {\r
        for(;;);\r
index 47de0ff2178cc6cd0594ef39a9eade6083571c98..a2bb009e1e570f19aa5a471a1bd6e93774f9961f 100644 (file)
 // Imported structs from Can_Lcfg.c\r
 extern const Can_ControllerConfigType CanControllerConfigData[];\r
 extern const Can_ConfigSetType CanConfigSetData;\r
-\r
+
+// Contains the mapping from CanIf-specific Channels to Can Controllers
+const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = {
+               CAN_CTRL_A, // CANIF_CHANNEL_0
+               CAN_CTRL_C, // CANIF_CHANNEL_1
+};\r
 \r
 // Container that gets slamed into CanIf_InitController()\r
 // Inits ALL controllers\r
 // Multiplicity 1..*\r
 const CanIf_ControllerConfigType CanIfControllerConfig[] =\r
 {\r
-  { // This is the ConfigurationIndex in CanIf_InitController()\r
-    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_A,\r
-    .CanIfDriverNameRef = "FLEXCAN",  // Not used\r
-    .CanIfInitControllerRef = &CanControllerConfigData[0],\r
+  { // CANIF_CHANNEL_0_CONFIG_0
+    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,
+    .CanIfControllerIdRef = CANIF_CHANNEL_0,
+    .CanIfDriverNameRef = "FLEXCAN",  // Not used
+    .CanIfInitControllerRef = &CanControllerConfigData[0],
   },\r
-  {\r
+  { // CANIF_CHANNEL_1_CONFIG_0\r
     .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_C,\r
+    .CanIfControllerIdRef = CANIF_CHANNEL_1,\r
     .CanIfDriverNameRef = "FLEXCAN", // Not used\r
     .CanIfInitControllerRef = &CanControllerConfigData[1],\r
   }\r
@@ -60,16 +65,16 @@ const CanIf_DispatchConfigType CanIfDispatchConfig =
 const CanIf_HthConfigType CanIfHthConfigData[] =\r
 {\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_A,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_0,\r
     .CanIfHthIdSymRef = CAN_HTH_A_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_C,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_1,\r
     .CanIfHthIdSymRef = CAN_HTH_C_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -77,18 +82,18 @@ const CanIf_HthConfigType CanIfHthConfigData[] =
 const CanIf_HrhConfigType CanIfHrhConfigData[] =\r
 {\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_A,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_0,\r
     .CanIfHrhIdSymRef = CAN_HRH_A_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_C,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_1,\r
     .CanIfHrhIdSymRef = CAN_HRH_C_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 //-------------------------------------------------------------------\r
@@ -119,7 +124,7 @@ const CanIf_RxPduConfigType CanIfRxPduConfigData[] =
     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
     .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR,\r
     .CanIfUserRxIndication = PduR_CanIfRxIndication, // No indication\r
-    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], // Received on controller A\r
+    .CanIfCanRxPduHrhRef = &CanIfHrhConfigData[0], // Received on channel 0\r
     .PduIdRef = NULL, // Could be used by upper layers\r
     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, // Not enabled in HRH\r
     .CanIfCanRxPduCanIdMask = 0xFFF,\r
@@ -133,7 +138,7 @@ const CanIf_InitHohConfigType CanIfHohConfigData[] =
     .CanConfigSet = &CanConfigSetData,\r
     .CanIfHrhConfig = CanIfHrhConfigData,\r
     .CanIfHthConfig = CanIfHthConfigData,\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -159,6 +164,7 @@ CanIf_ConfigType CanIf_Config =
   .ControllerConfig = CanIfControllerConfig,\r
   .DispatchConfig = &CanIfDispatchConfig,\r
   .InitConfig = &CanIfInitConfig,\r
-  .TransceiverConfig = NULL, // Not used\r
+  .TransceiverConfig = NULL, // Not used
+  .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap,\r
 };\r
 \r
index b255d85a6670ebfe63538ddd7c703e49fc342596..037e24e3182a041fbd873a1dcb714271887c9556 100644 (file)
@@ -37,7 +37,7 @@
  */\r
 ComGroupSignal_type ComGroupSignal[] = {\r
        {\r
-               .ComEcoreEOL = 1\r
+               .Com_Arc_EOL = 1\r
        }\r
 };\r
 \r
@@ -60,11 +60,11 @@ ComSignal_type ComSignal[] = {
                .ComBitSize = 16,\r
                .ComSignalEndianess = BIG_ENDIAN,\r
                .ComSignalType = UINT16,
-               .ComEcoreIsSignalGroup = 0,\r
+               .Com_Arc_IsSignalGroup = 0,\r
 \r
        },\r
        {\r
-               .ComEcoreEOL = 1\r
+               .Com_Arc_EOL = 1\r
        }\r
 };\r
 \r
@@ -78,7 +78,7 @@ ComIPduGroup_type ComIPduGroup[] = {
        },\r
 \r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -105,7 +105,7 @@ ComIPdu_type ComIPdu[] = {
        },\r
 \r
        {\r
-               .ComEcoreEOL = 1\r
+               .Com_Arc_EOL = 1\r
        }\r
 };\r
 \r
index 2dd0de1efa130b2fa0d5c6fe788745739b2df136..5bb91eecbd07e867db9aee5da4199f8f61e3d6af 100644 (file)
@@ -80,7 +80,9 @@ counter_obj_t counter_list[] = {
                .alarm_base.tickperbase = 1,\r
                .alarm_base.mincycle = 0,\r
        },\r
-};\r
+};
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;\r
 \r
 // ##################################    ALARMS     ################################\r
 alarm_obj_t alarm_list[] = {\r
index b833e39cb36a1de216144b87cb8a5c56d574ed73..431a18ae5de2400c622c36d75bef93127eeb429d 100644 (file)
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  * for more details.
- * -------------------------------- Arctic Core ------------------------------*/
-
-
-
-
-
-
-
-
-/*\r
- * Pwm_Cfg.h\r
- *\r
- *  Created on: 2009-jul-09\r
- *      Author: nian\r
- */\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
 \r
 #ifndef PWM_CFG_H_\r
 #define PWM_CFG_H_\r
 \r
-/****************************************************************************\r
- * Global configuration options and defines\r
+/*
+ * PwmGeneral
  */\r
 \r
-#define ON 1\r
-#define OFF 0\r
-\r
 /*\r
  * PWM003: The detection of development errors is configurable (ON/OFF) at\r
  * pre-compile time. The switch PwmDevErorDetect shall activate or disable\r
  * the detection of all development errors\r
  */\r
-#define PWM_DEV_EROR_DETECT ON\r
-#define PWM_GET_OUTPUT_STATE ON\r
-#define PWM_STATICALLY_CONFIGURED OFF\r
-#define PWM_NOTIFICATION_SUPPORTED ON\r
+#define PWM_DEV_EROR_DETECT STD_ON\r
+#define PWM_GET_OUTPUT_STATE STD_ON\r
+#define PWM_STATICALLY_CONFIGURED STD_OFF\r
+#define PWM_NOTIFICATION_SUPPORTED STD_ON\r
 \r
-#define PWM_SET_PERIOD_AND_DUTY ON\r
+#define PWM_SET_PERIOD_AND_DUTY STD_ON\r
 \r
 /*\r
  * PWM132: Switch for enabling the update of duty cycle parameter at the end\r
  *\r
  * Note: Currently only ON mode is supported.\r
  */\r
-#define PWM_DUTYCYCLE_UPDATED_ENDPERIOD ON\r
+#define PWM_DUTYCYCLE_UPDATED_ENDPERIOD STD_ON\r
+
+/*
+ * PWM106: This is implementation specific but not all values may be valid
+ * within the type. This shall be chosen in order to have the most efficient
+ * implementation on a specific microcontroller platform.
+ *
+ * PWM106 => Pwm_ChannelType == eemios channel id.
+ */
+typedef uint8 Pwm_ChannelType;
+
+/*
+ * PWM070: All time units used within the API services of the PWM module shall
+ * be of the unit ticks.
+ */
+typedef uint16 Pwm_PeriodType;
+
 \r
 /****************************************************************************\r
  * Not defined in AUTOSAR.\r
@@ -66,7 +65,7 @@
  * Setting to ON freezes the current output state of a PWM channel when in\r
  * debug mode.\r
  */\r
-#define PWM_FREEZE_ENABLE ON\r
+#define PWM_FREEZE_ENABLE STD_ON\r
 \r
 /****************************************************************************\r
  * Enumeration of channels\r
@@ -81,13 +80,109 @@ typedef enum {
                          * is available on pin 54 of the\r
                          * ERNI 154822 connector\r
                          */\r
-    PWM_CHANNEL_2 = 12, /* Channel 12 goes to PCR191, also\r
-                         * available on the ERNI 154822 connector\r
-                         */\r
 #else\r
 #warning "Unknown board or CFG_BRD_* undefined"\r
 #endif\r
     PWM_NUMBER_OF_CHANNELS = 1,\r
 } Pwm_NamedChannelsType;\r
+
+typedef enum {
+       PWM_CHANNEL_PRESCALER_1=0,
+       PWM_CHANNEL_PRESCALER_2,
+       PWM_CHANNEL_PRESCALER_3,
+       PWM_CHANNEL_PRESCALER_4,
+} Pwm_ChannelPrescalerType;
+
+/*
+ * Since the AUTOSAR PWM specification uses a different unit for the duty,
+ * the following macro can be used to convert between that format and the
+ * mpc5516 format.
+ */
+#define DUTY_AND_PERIOD(_duty,_period) .duty = (_duty*_period)>>15, .period = _period
+
+#if defined(CFG_MPC5516)
+       /* Mode is buffered PWM output (OPWM) */
+       /* Mode is buffered Output PW and frequency modulation mode */
+#define PWM_EMIOS_OPWM 0x5A
+#elif defined(CFG_MPC5567)
+       /* Mode is buffered OPWM with frequency modulation (allows change of
+        * period) */
+#define PWM_EMIOS_OPWM 0x19
+#endif
+
+
+typedef struct {
+       /* Number of duty ticks */
+       uint32_t                 duty:32;
+       /* Length of period, in ticks */
+       uint32_t                 period:32;
+       /* Counter */
+       uint32_t                 counter:32;
+       /* Enable freezing the channel when in debug mode */
+       uint32_t                 freezeEnable:1;
+       /* Disable output */
+       uint32_t                 outputDisable:1;
+       /* Select which bus disables the bus
+        * TODO: Figure out how this works, i.e. what bus does it refer to? */
+       uint32_t                                 outputDisableSelect:2;
+       /* Prescale the emios clock some more? */
+       Pwm_ChannelPrescalerType prescaler:2;
+       /* Prescale the emios clock some more? */
+       uint32_t                                 usePrescaler:1;
+       /* Whether to use DMA. Currently unsupported */
+       uint32_t                                 useDma:1;
+       uint32_t                                 reserved_2:1;
+       /* Input filter. Ignored in output mode. */
+       uint32_t                                 inputFilter:4;
+       /* Input filter clock source. Ignored in output mode */
+       uint32_t                                 filterClockSelect:1;
+       /* Enable interrupts/flags on this channel? Required for DMA as well. */
+       uint32_t                                 flagEnable:1;
+       uint32_t                                 reserved_3:3;
+       /* Trigger a match on channel A */
+       uint32_t                                 forceMatchA:1;
+       /* Triggers a match on channel B */
+       uint32_t                                 forceMatchB:1;
+       uint32_t                                 reserved_4:1;
+       /* We can use different buses for the counter. Use the internal counter */
+       uint32_t                                 busSelect:2;
+       /* What edges to flag on? */
+       uint32_t                                 edgeSelect:1;
+       /* Polarity of the channel */
+       uint32_t                                 edgePolarity:1;
+       /* EMIOS mode. 0x58 for buffered output PWM */
+       uint32_t                                 mode:7;
+} Pwm_ChannelRegisterType;
+
+typedef struct {
+       Pwm_ChannelRegisterType r;
+       Pwm_ChannelType channel;
+} Pwm_ChannelConfigurationType;
+
+
+typedef struct {
+       Pwm_ChannelConfigurationType Channels[PWM_NUMBER_OF_CHANNELS];
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON
+       Pwm_NotificationHandlerType NotificationHandlers[PWM_NUMBER_OF_CHANNELS];
+#endif
+} Pwm_ConfigType;
+
+// Channel configuration macro.
+#define PWM_CHANNEL_CONFIG(_hwchannel, _period, _duty, _prescaler, _polarity) \
+    {\
+        .channel = _hwchannel,\
+        .r = {\
+            DUTY_AND_PERIOD(_duty, _period),\
+            .freezeEnable = 1,\
+            .outputDisable = 0,\
+            .usePrescaler = 1,\
+            .prescaler = _prescaler,\
+            .useDma = 0,\
+            .flagEnable = 0, /* See PWM052 */ \
+            .busSelect = 3, /* Use the internal counter bus */\
+            .edgePolarity = _polarity,\
+            .mode = PWM_EMIOS_OPWM\
+        }\
+    }
 \r
 #endif /* PWM_CFG_H_ */\r
index ed89956e0ebe02ec6f4d8d06697a23253e6f11c7..f2a42960e648998f1cc1bdddb6498a65ec2a5534 100644 (file)
@@ -21,7 +21,6 @@
 
 
 \r
-#include "Adc.h"\r
 #include "Com.h"\r
 #include "Trace.h"\r
 #include "RTE_fading_led.h"\r
@@ -29,7 +28,7 @@
 \r
 uint16 rx_data = 0;\r
 \r
-void can_node_receive(void) {\r
+void pwm_node2_receive(void) {\r
        Com_ReceiveSignal(SetLedLevelRx, &rx_data);\r
        fading_led_set_level(rx_data);\r
 }\r
diff --git a/examples/pwm_node2/pwm_node2_helpers.h b/examples/pwm_node2/pwm_node2_helpers.h
new file mode 100644 (file)
index 0000000..324c3c1
--- /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 PWM_NODE2_HELPERS_H_\r
+#define PWM_NODE2_HELPERS_H_\r
+\r
+void pwm_node2_receive(void);\r
+\r
+#endif /* PWM_NODE2_HELPERS_H_ */\r
diff --git a/examples/pwm_node2/pwm_node2_mpc551x.arxml b/examples/pwm_node2/pwm_node2_mpc551x.arxml
new file mode 100644 (file)
index 0000000..fe453a8
--- /dev/null
@@ -0,0 +1,1095 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.0">\r
+  <TOP-LEVEL-PACKAGES>\r
+    <AR-PACKAGE>\r
+      <SHORT-NAME>pwm_node_mpc551x</SHORT-NAME>\r
+      <CATEGORY>EcuConfiguration</CATEGORY>\r
+      <ADMIN-DATA>\r
+        <DOC-REVISIONS>\r
+          <DOC-REVISION>\r
+            <ISSUED-BY/>\r
+          </DOC-REVISION>\r
+        </DOC-REVISIONS>\r
+        <SDGS>\r
+          <SDG GID="Autocore::Options">\r
+            <SD GID="ARCCORE_FORMAT_VERSION">1.1.0</SD>\r
+            <SD GID="MCU">MPC551x</SD>\r
+            <SD GID="LOCAL_VALIDATION">ON</SD>\r
+            <SD GID="AUTHOR"/>\r
+            <SD GID="COPYRIGHT"/>\r
+            <SD GID="GENDIR"></SD>\r
+          </SDG>\r
+        </SDGS>\r
+      </ADMIN-DATA>\r
+      <ELEMENTS>\r
+        <ECU-CONFIGURATION>\r
+          <MODULE-REFS>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Os</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/EcuC</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Com</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Can</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/CanIf</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Pwm</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/pwm_node_mpc551x/Port</MODULE-REF>\r
+          </MODULE-REFS>\r
+        </ECU-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Os</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Os</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsOS</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+                  <VALUE>1000</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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>true</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
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsTick</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+                  <VALUE>65535</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+                  <VALUE>OS-TICK</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>ComTask</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>StartupTask</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>ComAlarm</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/pwm_node_mpc551x/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+                      <VALUE>5</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+                      <VALUE>ABSOLUTE</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+                      <VALUE>20</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Os/ComTask</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>EcuC</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/EcuC</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/EcuC</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PduCollection</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>LedCommandRx</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection/Pdu</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuC/PduCollection/Pdu/PduLength</DEFINITION-REF>\r
+                      <VALUE>64</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Com</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Com</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Com</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComConfigurationId</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>RxGroup</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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPduGroup/ComIPduGroupHandleId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>LedCommandRx</SHORT-NAME>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduCallout</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduRxHandleId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalProcessing</DEFINITION-REF>\r
+                      <VALUE>IMMEDIATE</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduGroupRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Com/ComConfig/RxGroup</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/PduIdRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/EcuC/PduCollection/LedCommandRx</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Com/ComConfig/SetLedLevelRx</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduMinimumDelayTimeFactor</DEFINITION-REF>\r
+                          <VALUE>0</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <INTEGER-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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>\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>\r
+                              <SHORT-NAME>ComTxMode</SHORT-NAME>\r
+                              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPduComTxModeTrue/ComTxMode</DEFINITION-REF>\r
+                              <PARAMETER-VALUES>\r
+                                <ENUMERATION-VALUE>\r
+                                  <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimePeriodFactor</DEFINITION-REF>\r
+                                  <VALUE>0</VALUE>\r
+                                </INTEGER-VALUE>\r
+                              </PARAMETER-VALUES>\r
+                              <SUB-CONTAINERS/>\r
+                            </CONTAINER>\r
+                          </SUB-CONTAINERS>\r
+                        </CONTAINER>\r
+                      </SUB-CONTAINERS>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>SetLedLevelRx</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+                      <VALUE>16</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+                      <VALUE>BIG_ENDIAN</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+                      <VALUE>UINT16</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+                      <VALUE>TRIGGERED</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComGeneral/ComConfigurationTimeBase</DEFINITION-REF>\r
+                </FLOAT-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComGeneral/ComConfigurationUseDet</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Can</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Can</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Can</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>CanConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Can_A</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanController</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\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="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerBaudRate</DEFINITION-REF>\r
+                      <VALUE>125</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanHWControllerId</DEFINITION-REF>\r
+                      <VALUE>FLEXCAN_A</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerPropSeg</DEFINITION-REF>\r
+                      <VALUE>4</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerSeg1</DEFINITION-REF>\r
+                      <VALUE>4</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerSeg2</DEFINITION-REF>\r
+                      <VALUE>4</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>Mask_1</SHORT-NAME>\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="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanFilterMask/CanFilterMaskValue</DEFINITION-REF>\r
+                          <VALUE>0</VALUE>\r
+                        </INTEGER-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>HWObj_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanIdType</DEFINITION-REF>\r
+                      <VALUE>EXTENDED</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanObjectType</DEFINITION-REF>\r
+                      <VALUE>RECEIVE</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanMBMask</DEFINITION-REF>\r
+                      <VALUE>16711680</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanControllerRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Can/CanConfigSet/Can_A</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanFilterMaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/Can/CanConfigSet/Can_A/Mask_1</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>CanIf</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/CanIf</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/CanIf</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfBusOffNotification</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+                <FUNCTION-NAME-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfErrorNotificaton</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+                <FUNCTION-NAME-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfWakeupNotification</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+                <FUNCTION-NAME-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfWakeupValidNotification</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\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
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfConfigSet</DEFINITION-REF>\r
+                </STRING-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfCanRxPduIds</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfCanTXPduIds</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfDynamicCanTXPduIds</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Hoh_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>Hrh_1</SHORT-NAME>\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="BOOLEAN-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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig/CanIfCanControllerHrhIdRef</DEFINITION-REF>\r
+                          <VALUE-REF>/pwm_node_mpc551x/CanIf/CHANNEL_0</VALUE-REF>\r
+                        </REFERENCE-VALUE>\r
+                        <REFERENCE-VALUE>\r
+                          <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHrhConfig/CanIfHrhIdSymRef</DEFINITION-REF>\r
+                          <VALUE-REF>/pwm_node_mpc551x/Can/CanConfigSet/HWObj_1</VALUE-REF>\r
+                        </REFERENCE-VALUE>\r
+                      </REFERENCE-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Rx_PDU_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduCanId</DEFINITION-REF>\r
+                      <VALUE>291</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduDlc</DEFINITION-REF>\r
+                      <VALUE>8</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduId</DEFINITION-REF>\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>true</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfRxPduIdCanIdType</DEFINITION-REF>\r
+                      <VALUE>EXTENDED_CAN</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfRxUserType</DEFINITION-REF>\r
+                      <VALUE>PDUR</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfUserRxIndication</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/CanIfCanRxPduHrhRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/CanIf/CanIfInitConfiguration/Hoh_1/Hrh_1</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfRxPduConfig/PduIdRef</DEFINITION-REF>\r
+                      <VALUE-REF>/pwm_node_mpc551x/EcuC/PduCollection/LedCommandRx</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfNumberOfTxBuffers</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfSoftwareFilterType</DEFINITION-REF>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\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>true</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="BOOLEAN-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
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>CanIfTransceiverDrvConfig</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfTransceiverDrvConfig</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfTransceiverDrvConfig/CanIfTrcvWakeupNotification</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>CHANNEL_0</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfControllerConfig</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfControllerConfig/CanIfControllerIdRef</DEFINITION-REF>\r
+                  <VALUE-REF>/pwm_node_mpc551x/Can/CanConfigSet/Can_A</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Pwm</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Pwm</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Pwm</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmChannelConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM_CHANNEL_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelClass</DEFINITION-REF>\r
+                      <VALUE>PWM_VARIABLE_PERIOD</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmChannelId</DEFINITION-REF>\r
+                      <VALUE>12</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmDutycycleDefault</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmIdleState</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmArcticCoreChannelPrescaler</DEFINITION-REF>\r
+                      <VALUE>PWM_CHANNEL_PRESCALER_1</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmNotification</DEFINITION-REF>\r
+                      <VALUE></VALUE>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <FLOAT-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPeriodDefault</DEFINITION-REF>\r
+                      <VALUE>0.0010</VALUE>\r
+                    </FLOAT-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmChannelConfigSet/PwmChannel/PwmPolarity</DEFINITION-REF>\r
+                      <VALUE>PWM_LOW</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmConfigurationOfOptApiServices</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmDeInitApi</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmGetOutputState</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetDutyCycle</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetOutputToIdle</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmSetPeriodAndDuty</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmConfigurationOfOptApiServices/PwmVersionInfoApi</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PwmGeneral</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Pwm/PwmGeneral</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmDevErorDetect</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmDutycycleUpdatedEndperiod</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmIndex</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmNotificationSupported</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Pwm/PwmGeneral/PwmPeriodUpdatedEndperiod</DEFINITION-REF>\r
+                  <VALUE>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Port</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Port</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PortConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>PWM</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+                  <PARAMETER-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>eMIOS[12]</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>52</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_PWM</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>CAN</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+                  <PARAMETER-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>CNTX_A</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>48</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>CNRX_A</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>49</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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>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>true</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+      </ELEMENTS>\r
+    </AR-PACKAGE>\r
+  </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>
\ No newline at end of file
diff --git a/examples/simple/Simple.arxml b/examples/simple/Simple.arxml
new file mode 100644 (file)
index 0000000..a10dd3a
--- /dev/null
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.0">\r
+  <TOP-LEVEL-PACKAGES>\r
+    <AR-PACKAGE>\r
+      <SHORT-NAME>Simple</SHORT-NAME>\r
+      <CATEGORY>EcuConfiguration</CATEGORY>\r
+      <ADMIN-DATA>\r
+        <DOC-REVISIONS>\r
+          <DOC-REVISION>\r
+            <REVISION-LABEL></REVISION-LABEL>\r
+            <ISSUED-BY/>\r
+          </DOC-REVISION>\r
+        </DOC-REVISIONS>\r
+        <SDGS>\r
+          <SDG GID="Autocore::Options">\r
+            <SD GID="ARCCORE_FORMAT_VERSION">1.1.0</SD>\r
+            <SD GID="MCU">Undefined MCU</SD>\r
+            <SD GID="LOCAL_VALIDATION">ON</SD>\r
+            <SD GID="AUTHOR"></SD>\r
+            <SD GID="COPYRIGHT"></SD>\r
+            <SD GID="GENDIR"></SD>\r
+          </SDG>\r
+        </SDGS>\r
+      </ADMIN-DATA>\r
+      <ELEMENTS>\r
+        <ECU-CONFIGURATION>\r
+          <MODULE-REFS>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/Simple/Os</MODULE-REF>\r
+          </MODULE-REFS>\r
+        </ECU-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Os</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Os</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsCounter</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+                  <VALUE>65535</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+                  <VALUE>OS-TICK</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsOS</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+                  <VALUE>1000</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <BOOLEAN-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>\r
+                      <VALUE>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <BOOLEAN-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>\r
+                      <VALUE>false</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>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <BOOLEAN-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>\r
+                      <VALUE>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>etask_1</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>EXTENDED</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>etask_2</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>EXTENDED</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>btask_3</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>3</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Alarm_1</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/Simple/Os/OsCounter</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+                      <VALUE>100</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+                      <VALUE>RELATIVE</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+                      <VALUE>10</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>SetEvent</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventRef</DEFINITION-REF>\r
+                      <VALUE-REF>/Simple/Os/Event_2</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmSetEvent/OsAlarmSetEventTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/Simple/Os/etask_1</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Event_0</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+              <PARAMETER-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Event_2</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsEvent/OsEventMask</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>Event_1</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsEvent/OsEventMask</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+      </ELEMENTS>\r
+    </AR-PACKAGE>\r
+  </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>
\ No newline at end of file
index 3c00d7bdf20bd5964d253b0ee213f385ac398beb..6e4e5cc4dc6af00ada259b437a86b48038765480 100644 (file)
@@ -98,12 +98,14 @@ GEN_IRQ_PRIORITY_TABLE_HEAD {};
 \r
 // --- COUNTERS ---\r
 GEN_COUNTER_HEAD {\r
-       GEN_COUNTER(    OS_TICK_COUNTER,\r
-                                       "OS_TICK_COUNTER",\r
+       GEN_COUNTER(    COUNTER_ID_OsTick,
+                                       "COUNTER_ID_OsTick",
                                        COUNTER_TYPE_HARD,\r
                                        COUNTER_UNIT_NANO,\r
                                        0xffff,1,1,0 ),\r
-};\r
+};
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;
 \r
 // --- MESSAGES ---\r
 \r
@@ -111,7 +113,7 @@ GEN_COUNTER_HEAD {
 #define ALARM_USE\r
 \r
 GEN_ALARM_HEAD {\r
-       GEN_ALARM(      0,"Alarm1",OS_TICK_COUNTER,\r
+       GEN_ALARM(      0,"Alarm1",COUNTER_ID_OsTick,
                                1,100,10,0,             /*active,start,cycle,app_mask */\r
                                ALARM_ACTION_SETEVENT, TASK_ID_etask_1, 2, 0 ),\r
 };\r
index bcbac2d438788988b8b57ec8f92bc91892c6395a..a0e5c8145a0ca9f1215086d4e2e02889a8457508 100644 (file)
@@ -30,7 +30,7 @@
 #ifndef OS_CFG_H_\r
 #define OS_CFG_H_\r
 \r
-/* os_config.h */\r
+#define COUNTER_ID_OsTick                              0
 \r
 #define APPLICATION_ID_application_1   0\r
 #define APPLICATION_CNT                                        1\r
@@ -47,7 +47,7 @@ void btask_3( void );
 //#define TASK_ID_os_tick                                      8\r
 \r
 \r
-// OS_TICK_COUNTER located in Os.h\r
+// COUNTER_ID_OsTick located in Os.h\r
 \r
 // NOT GENERATED( for test system only )\r
 #define SYSTEM_COUNTER_PERIOD                          100\r
index 1dba85ad6c804ea338f8b09de54d4ddef126d2fa..c171d2297eafdc73536ac3bd6e9cd0fb47a42801 100644 (file)
@@ -140,10 +140,11 @@ void ErrorHook( StatusType Error ) {
        switch(service) {\r
        case OSServiceId_SetRelAlarm:\r
        {\r
-               // Read the arguments to the faulty functions...\r
+               // Read the arguments to the faulty functions...
+               /* (Commented to remove warnings)
                AlarmType alarm_id = OSError_SetRelAlarm_AlarmId;\r
                TickType increment = OSError_SetRelAlarm_Increment;\r
-               TickType cycle = OSError_SetRelAlarm_Cycle;\r
+               TickType cycle = OSError_SetRelAlarm_Cycle;     */
                // ... Handle this some way.\r
                break;\r
        }\r
index 801b244b1531d6a475a77c87326d77d402d23a44..bdd94ef82bb0c573b3b461d0e34249f6fc2bd7fa 100644 (file)
@@ -25,7 +25,7 @@
 #include <assert.h>
 #define USE_TRACE      1
 #include "Trace.h"
-//#include "Hooks.h"
+#include "Mcu.h"
 
 
 #if 0
@@ -34,7 +34,6 @@
 #if !defined(USE_SIMULATOR)
 // Quick fix
 //#include "Kernel_Offset.h"
-#include "Mcu.h"
 
 extern uint8_t pcb_list[];
 
index c36ae8750b22d3c48daf7b7f56a1bd8b20022d86..39f206902e602949fb4586ab62da5b2127e7c8a7 100644 (file)
  * for more details.
  * -------------------------------- Arctic Core ------------------------------*/
 
-
-
-
-
-
-
-
 #ifndef ADC_CFG_H_\r
 #define ADC_CFG_H_\r
+
+#include "Dma.h"
 \r
 #define ADC_PRIORITY_HW                   0\r
 #define ADC_PRIORITY_HW_SW                1\r
 #define ADC_PRIORITY_IMPLEMENTATION       ADC_PRIORITY_HW\r
 #define ADC_READ_GROUP_API                STD_ON\r
 #define ADC_VERSION_API                   STD_ON            /* Not implemented. */\r
-\r
-/* Group definitions. */\r
-\r
-\r
-typedef enum\r
-{\r
-  ADC_SWITCHES,\r
-  ADC_POTENTIOMETERS\r
-}Adc_GroupType_NiceNames;\r
-\r
-typedef enum\r
-{\r
-       ADC_GROUP0,\r
-       ADC_GROUP1,\r
-       ADC_NBR_OF_GROUPS\r
-}Adc_GroupType;\r
-\r
-typedef enum\r
-{\r
-  ADC_CH0,\r
-  ADC_CH1,\r
-  ADC_CH2,\r
-  ADC_CH3,\r
-  ADC_CH4,\r
-  ADC_CH5,\r
-  ADC_CH6,\r
-  ADC_CH7,\r
-  ADC_CH8,\r
-  ADC_CH9,\r
-  ADC_CH10,\r
-  ADC_CH11,\r
-  ADC_CH12,\r
-  ADC_CH13,\r
-  ADC_CH14,\r
-  ADC_CH15,\r
-  ADC_CH16,\r
-  ADC_CH17,\r
-  ADC_CH18,\r
-  ADC_CH19,\r
-  ADC_CH20,\r
-  ADC_NBR_OF_CHANNELS,\r
-}Adc_ChannelType;\r
-\r
-typedef enum\r
-{\r
-  ADC_SWITCH_RED,\r
-  ADC_SWITCH_BLACK,\r
-  ADC_NBR_OF_SWITCH_CHANNELS,\r
-}Adc_SwitchesSignalType;\r
-\r
-typedef enum\r
-{\r
-  ADC_POTENTIOMETER_NOT_USED,\r
-  ADC_POTENTIOMETER_0,\r
-\r
-  ADC_POTENTIOMETER_1,\r
-  ADC_NBR_OF_POTENTIOMETER_CHANNELS,\r
-}Adc_PotentiometersSignals;\r
+
+/* Group definitions. */
+
+typedef enum
+{
+  ADC_SWITCHES,
+  ADC_POTENTIOMETERS
+}Adc_GroupType_NiceNames;
+
+typedef enum
+{
+       ADC_GROUP0,
+       ADC_GROUP1,
+       ADC_NBR_OF_GROUPS
+}Adc_GroupType;
+
+typedef enum
+{
+  ADC_CH0,
+  ADC_CH1,
+  ADC_CH2,
+  ADC_CH3,
+  ADC_CH4,
+  ADC_CH5,
+  ADC_CH6,
+  ADC_CH7,
+  ADC_CH8,
+  ADC_CH9,
+  ADC_CH10,
+  ADC_CH11,
+  ADC_CH12,
+  ADC_CH13,
+  ADC_CH14,
+  ADC_CH15,
+  ADC_CH16,
+  ADC_CH17,
+  ADC_CH18,
+  ADC_CH19,
+  ADC_CH20,
+  ADC_NBR_OF_CHANNELS,
+}Adc_ChannelType;
+
+typedef enum
+{
+  ADC_SWITCH_RED,
+  ADC_SWITCH_BLACK,
+  ADC_NBR_OF_SWITCH_CHANNELS,
+}Adc_SwitchesSignalType;
+
+typedef enum
+{
+  ADC_POTENTIOMETER_NOT_USED,
+  ADC_POTENTIOMETER_0,
+
+  ADC_POTENTIOMETER_1,
+  ADC_NBR_OF_POTENTIOMETER_CHANNELS,
+}Adc_PotentiometersSignals;
+
+
+typedef uint16_t Adc_ValueGroupType;
+
+
+/* Non-standard type */
+typedef union
+{
+  vuint32_t R;
+  struct
+  {
+    vuint32_t EOQ:1;
+    vuint32_t PAUSE:1;
+    vuint32_t :4;
+    vuint32_t BN:1;
+    vuint32_t CAL:1;
+    vuint32_t MESSAGE_TAG:4;
+    vuint32_t LST:2;
+    vuint32_t TSR:1;
+    vuint32_t FMT:1;
+    vuint32_t CHANNEL_NUMBER:8;
+    vuint32_t :8;
+   } B;
+}Adc_CommandType;
+
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_SYSTEM_CLOCK
+}Adc_ClockSourceType;
+
+
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_SYSTEM_CLOCK_DISABLED,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_1,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_2,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_4,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_6,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_8,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_10,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_12,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_14,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_16,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_18,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_20,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_22,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_24,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_26,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_28,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_30,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_32,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_34,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_36,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_38,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_40,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_42,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_44,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_46,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_48,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_50,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_52,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_54,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_56,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_58,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_60,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_62,
+  ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_64,
+}Adc_PrescaleType;
+
+/* Non-standard type */
+typedef struct
+{
+  Adc_ClockSourceType clockSource;
+  uint8_t             hwUnitId;
+  Adc_PrescaleType    adcPrescale;
+}Adc_HWConfigurationType;
+
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_REFERENCE_VOLTAGE_GROUND,
+  ADC_REFERENCE_VOLTAGE_5V,
+}Adc_VoltageSourceType;
+
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_CONVERSION_TIME_2_CLOCKS,
+  ADC_CONVERSION_TIME_8_CLOCKS,
+  ADC_CONVERSION_TIME_64_CLOCKS,
+  ADC_CONVERSION_TIME_128_CLOCKS
+}Adc_ConversionTimeType;
+
+/* Non-standard type */
+typedef enum
+{
+  ADC_CALIBRATION_DISABLED,
+  ADC_CALIBRATION_ENABLED
+}Adc_CalibrationType;
+
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_RESOLUTION_12BITS
+}Adc_ResolutionType;
+
+/* Non-standard type */
+/* Channel definitions. */
+typedef struct
+{
+  Adc_ConversionTimeType adcChannelConvTime;
+  Adc_VoltageSourceType  adcChannelRefVoltSrcLow;
+  Adc_VoltageSourceType  adcChannelRefVoltSrcHigh;
+  Adc_ResolutionType     adcChannelResolution;
+  Adc_CalibrationType    adcChannelCalibrationEnable;
+}Adc_ChannelConfigurationType;
+
+
+/* TODO list timer sources here. */
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_NO_TIMER,
+}Adc_HwTriggerTimerType;
+
+
+/* Std-type, supplier defined */
+typedef uint16_t Adc_StreamNumSampleType;
+
+/* Std-type, supplier defined */
+typedef enum
+{
+  ADC_CONV_MODE_DISABLED,
+  ADC_CONV_MODE_ONESHOT   = 1,
+  ADC_CONV_MODE_CONTINOUS = 9,
+}Adc_GroupConvModeType;
+
+
+/* Used ?? */
+typedef struct
+{
+  uint8 notifictionEnable;
+  Adc_ValueGroupType *resultBufferPtr;
+  Adc_StatusType groupStatus;
+}Adc_GroupStatus;
+
+
+/* Implementation specific */
+typedef struct
+{
+  Adc_GroupAccessModeType      accessMode;
+  Adc_GroupConvModeType        conversionMode;
+  Adc_TriggerSourceType        triggerSrc;
+  Adc_HwTriggerSignalType      hwTriggerSignal;
+  Adc_HwTriggerTimerType       hwTriggerTimer;
+  void                         (*groupCallback)(void);
+  Adc_StreamBufferModeType     streamBufferMode;
+  Adc_StreamNumSampleType      streamNumSamples;
+  const Adc_ChannelType        *channelList;
+  Adc_ValueGroupType           *resultBuffer;
+  Adc_CommandType              *commandBuffer;
+  Adc_ChannelType              numberOfChannels;
+  Adc_GroupStatus              *status;
+  Dma_ChannelType              dmaCommandChannel;
+  Dma_ChannelType              dmaResultChannel;
+  const struct tcd_t           *groupDMACommands;
+  const struct tcd_t           *groupDMAResults;
+}Adc_GroupDefType;
+
+
+/* Impl. specific */
+typedef struct
+{
+  const Adc_HWConfigurationType*      hwConfigPtr;
+  const Adc_ChannelConfigurationType* channelConfigPtr;
+  const uint16_t                      nbrOfChannels;
+  const Adc_GroupDefType*             groupConfigPtr;
+  const uint16_t                      nbrOfGroups;
+}Adc_ConfigType;
+
+extern const Adc_ConfigType AdcConfig [];
 \r
 extern const struct tcd_t AdcGroupDMACommandConfig [ADC_NBR_OF_GROUPS];\r
 extern const struct tcd_t AdcGroupDMAResultConfig [ADC_NBR_OF_GROUPS];\r
index ae89ff71decdc83b3d8664b6f6945cb524ead655..1c7b46250272aeef4957eb92d3fe9c268a742fc9 100644 (file)
 // Imported structs from Can_Lcfg.c\r
 extern const Can_ControllerConfigType CanControllerConfigData[];\r
 extern const Can_ConfigSetType CanConfigSetData;\r
+
+// Contains the mapping from CanIf-specific Channels to Can Controllers
+const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = {
+               CAN_CTRL_A, // CANIF_CHANNEL_0
+               CAN_CTRL_C, // CANIF_CHANNEL_1
+};
 \r
-\r
-// Container that gets slamed into CanIf_InitController()\r
-// Inits ALL controllers\r
-// Multiplicity 1..*\r
 const CanIf_ControllerConfigType CanIfControllerConfig[] =\r
 {\r
-  { // This is the ConfigurationIndex in CanIf_InitController()\r
+  { // CANIF_CHANNEL_0_CONFIG_0\r
     .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-    .CanIfControllerIdRef = CAN_CTRL_A,\r
+    .CanIfControllerIdRef = CANIF_CHANNEL_0,\r
     .CanIfDriverNameRef = "FLEXCAN",  // Not used\r
     .CanIfInitControllerRef = &CanControllerConfigData[0],\r
+  },
+  { // CANIF_CHANNEL_1_CONFIG_0
+    .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,
+    .CanIfControllerIdRef = CANIF_CHANNEL_1,
+    .CanIfDriverNameRef = "FLEXCAN",  // Not used
+    .CanIfInitControllerRef = &CanControllerConfigData[1],
   },\r
 };\r
 \r
@@ -54,10 +62,10 @@ const CanIf_DispatchConfigType CanIfDispatchConfig =
 const CanIf_HthConfigType CanIfHthConfigData[] =\r
 {\r
   {\r
-    .CanIfHthType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
-    .CanIfCanControllerIdRef = CAN_CTRL_A,\r
+    .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
+    .CanIfCanControllerIdRef = CANIF_CHANNEL_0,\r
     .CanIfHthIdSymRef = CAN_HTH_A_1, // Ref to the HTH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
 };\r
 \r
@@ -65,11 +73,11 @@ const CanIf_HthConfigType CanIfHthConfigData[] =
 const CanIf_HrhConfigType CanIfHrhConfigData[] =\r
 {\r
   {\r
-    .CanIfHrhType = CAN_ECORE_HANDLE_TYPE_BASIC,\r
+    .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
     .CanIfSoftwareFilterHrh = TRUE,   // Disable software filtering\r
-    .CanIfCanControllerHrhIdRef = CAN_CTRL_A,\r
+    .CanIfCanControllerHrhIdRef = CANIF_CHANNEL_0,\r
     .CanIfHrhIdSymRef = CAN_HRH_A_1, // Ref to the HRH\r
-    .CanIfEcoreEOL = 0,\r
+    .CanIf_Arc_EOL = 0,\r
   },\r
 };\r
 //-------------------------------------------------------------------\r
@@ -109,7 +117,7 @@ const CanIf_InitHohConfigType CanIfHohConfigData[] =
     .CanConfigSet = &CanConfigSetData,\r
     .CanIfHrhConfig = CanIfHrhConfigData,\r
     .CanIfHthConfig = CanIfHthConfigData,\r
-    .CanIfEcoreEOL = 1,\r
+    .CanIf_Arc_EOL = 1,\r
   },\r
 };\r
 \r
@@ -135,6 +143,7 @@ CanIf_ConfigType CanIf_Config =
   .ControllerConfig = CanIfControllerConfig,\r
   .DispatchConfig = &CanIfDispatchConfig,\r
   .InitConfig = &CanIfInitConfig,\r
-  .TransceiverConfig = NULL, // Not used\r
+  .TransceiverConfig = NULL, // Not used
+  .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap,\r
 };\r
 \r
index aff0bca5a1de027ae4aedbc67a85a1d953bbab25..5925d948b8e2c2d045272e0e7a6ed9b6916e095e 100644 (file)
@@ -37,7 +37,7 @@
  */\r
 ComGroupSignal_type ComGroupSignal[] = {\r
        {\r
-               .ComEcoreEOL = 1\r
+               .Com_Arc_EOL = 1\r
        }\r
 };\r
 \r
@@ -60,11 +60,11 @@ ComSignal_type ComSignal[] = {
                .ComBitSize = 16,\r
                .ComSignalEndianess = BIG_ENDIAN,\r
                .ComSignalType = UINT16,
-               .ComEcoreIsSignalGroup = 0,\r
+               .Com_Arc_IsSignalGroup = 0,\r
 \r
        },\r
        {\r
-               .ComEcoreEOL = 1\r
+               .Com_Arc_EOL = 1\r
        }\r
 };\r
 \r
@@ -78,7 +78,7 @@ ComIPduGroup_type ComIPduGroup[] = {
        },\r
 \r
        {\r
-               .ComEcoreEOL  = 1\r
+               .Com_Arc_EOL  = 1\r
        }\r
 };\r
 \r
@@ -116,7 +116,7 @@ ComIPdu_type ComIPdu[] = {
                },\r
        },\r
        {\r
-               .ComEcoreEOL = 1\r
+               .Com_Arc_EOL = 1\r
        }\r
 };\r
 \r
index 956b0e930a549db44e397be7f4a1d5db911f0ada..4702acdae9dd36937f0552859ff9c41e44ebd0eb 100644 (file)
@@ -81,6 +81,8 @@ counter_obj_t counter_list[] = {
                .alarm_base.mincycle = 0,\r
        },\r
 };\r
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;
 \r
 // ##################################    ALARMS     ################################\r
 alarm_obj_t alarm_list[] = {\r
index b295e60c27aa846b81bdaf6afe5e5cbeb58b84ad..ed59efb04d3497902d744720a45acd7bca99de95 100644 (file)
@@ -31,7 +31,6 @@
 /*\r
  * ADC callback. This function is called each time the switches are read.\r
  */\r
-static uint8 ModeSwitchCounter = 0; // Add some delay to the mode switch\r
 static Adc_ValueGroupType switchValues[ADC_NBR_OF_SWITCH_CHANNELS];\r
 void switch_node_switches_callback(void) {\r
 \r
diff --git a/examples/switch_node/switch_node_mpc551x.arxml b/examples/switch_node/switch_node_mpc551x.arxml
new file mode 100644 (file)
index 0000000..ea8f527
--- /dev/null
@@ -0,0 +1,1204 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.0">\r
+  <TOP-LEVEL-PACKAGES>\r
+    <AR-PACKAGE>\r
+      <SHORT-NAME>switch_node_mpc551x</SHORT-NAME>\r
+      <CATEGORY>EcuConfiguration</CATEGORY>\r
+      <ADMIN-DATA>\r
+        <DOC-REVISIONS>\r
+          <DOC-REVISION>\r
+            <ISSUED-BY/>\r
+          </DOC-REVISION>\r
+        </DOC-REVISIONS>\r
+        <SDGS>\r
+          <SDG GID="Autocore::Options">\r
+            <SD GID="ARCCORE_FORMAT_VERSION">1.1.0</SD>\r
+            <SD GID="MCU">MPC551x</SD>\r
+            <SD GID="LOCAL_VALIDATION">ON</SD>\r
+            <SD GID="AUTHOR"/>\r
+            <SD GID="COPYRIGHT"/>\r
+            <SD GID="GENDIR"></SD>\r
+          </SDG>\r
+        </SDGS>\r
+      </ADMIN-DATA>\r
+      <ELEMENTS>\r
+        <ECU-CONFIGURATION>\r
+          <MODULE-REFS>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/switch_node_mpc551x/Os</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/switch_node_mpc551x/EcuC</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/switch_node_mpc551x/CanIf</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/switch_node_mpc551x/Can</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/switch_node_mpc551x/Com</MODULE-REF>\r
+            <MODULE-REF DEST="MODULE-CONFIGURATION">/switch_node_mpc551x/Port</MODULE-REF>\r
+          </MODULE-REFS>\r
+        </ECU-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Os</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Os</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsOS</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+                  <VALUE>1000</VALUE>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <BOOLEAN-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>\r
+                      <VALUE>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <BOOLEAN-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>\r
+                      <VALUE>false</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>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                    <BOOLEAN-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>\r
+                      <VALUE>false</VALUE>\r
+                    </BOOLEAN-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>OsTick</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+                  <VALUE>65535</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+                  <VALUE>OS-TICK</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>ComTask</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>1</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>ReadSwitches</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>2</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>StartupTask</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+                  <VALUE>3</VALUE>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+                  <VALUE>BASIC</VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>ComAlarm</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/switch_node_mpc551x/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+                      <VALUE>5</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+                      <VALUE>ABSOLUTE</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+                      <VALUE>20</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/Os/ComTask</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>ReadSwAlarm</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsAlarm</DEFINITION-REF>\r
+              <REFERENCE-VALUES>\r
+                <REFERENCE-VALUE>\r
+                  <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmCounterRef</DEFINITION-REF>\r
+                  <VALUE-REF>/switch_node_mpc551x/Os/OsTick</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAlarmTime</DEFINITION-REF>\r
+                      <VALUE>10</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmAutostartType</DEFINITION-REF>\r
+                      <VALUE>ABSOLUTE</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAutostart/OsAlarmCycleTime</DEFINITION-REF>\r
+                      <VALUE>30</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>ActivateTask</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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Os/OsAlarm/OsAlarmAction/OsAlarmActivateTask/OsAlarmActivateTaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/Os/ReadSwitches</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>EcuC</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/EcuC</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/EcuC</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PduCollection</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>LedCommandTx</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/EcuC/PduCollection/Pdu</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/EcuC/PduCollection/Pdu/PduLength</DEFINITION-REF>\r
+                      <VALUE>64</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>CanIf</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/CanIf</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/CanIf</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfBusOffNotification</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+                <FUNCTION-NAME-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfErrorNotificaton</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+                <FUNCTION-NAME-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfWakeupNotification</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+                <FUNCTION-NAME-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfDispatchConfig/CanIfWakeupValidNotification</DEFINITION-REF>\r
+                </FUNCTION-NAME-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\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
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfConfigSet</DEFINITION-REF>\r
+                </STRING-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfCanRxPduIds</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfCanTXPduIds</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+                <INTEGER-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfNumberOfDynamicCanTXPduIds</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Hoh_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig</DEFINITION-REF>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>Hth_1</SHORT-NAME>\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="BOOLEAN-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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHthConfig/CanIfCanControllerIdRef</DEFINITION-REF>\r
+                          <VALUE-REF>/switch_node_mpc551x/CanIf/CHANNEL_0</VALUE-REF>\r
+                        </REFERENCE-VALUE>\r
+                        <REFERENCE-VALUE>\r
+                          <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfInitHohConfig/CanIfHthConfig/CanIfHthIdSymRef</DEFINITION-REF>\r
+                          <VALUE-REF>/switch_node_mpc551x/Can/CanConfigSet/Tx1</VALUE-REF>\r
+                        </REFERENCE-VALUE>\r
+                      </REFERENCE-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Tx_PDU_1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduIdCanId</DEFINITION-REF>\r
+                      <VALUE>291</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduIdDlc</DEFINITION-REF>\r
+                      <VALUE>8</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfTxPduIdCanIdType</DEFINITION-REF>\r
+                      <VALUE>EXTENDED_CAN</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfTxUserType</DEFINITION-REF>\r
+                      <VALUE>PDUR</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfUserTxConfirmation</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/CanIfCanTxPduHthRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/CanIf/CanIfInitConfiguration/Hoh_1/Hth_1</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfInitConfiguration/CanIfTxPduConfig/PduIdRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/EcuC/PduCollection/LedCommandTx</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfNumberOfTxBuffers</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfPrivateConfiguration/CanIfSoftwareFilterType</DEFINITION-REF>\r
+                  <VALUE></VALUE>\r
+                </ENUMERATION-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\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>true</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="BOOLEAN-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
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>CanIfTransceiverDrvConfig</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfTransceiverDrvConfig</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/CanIf/CanIfTransceiverDrvConfig/CanIfTrcvWakeupNotification</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <REFERENCE-VALUES/>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+            <CONTAINER>\r
+              <SHORT-NAME>CHANNEL_0</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/CanIf/CanIfControllerConfig</DEFINITION-REF>\r
+              <PARAMETER-VALUES>\r
+                <ENUMERATION-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/CanIf/CanIfControllerConfig/CanIfControllerIdRef</DEFINITION-REF>\r
+                  <VALUE-REF>/switch_node_mpc551x/Can/CanConfigSet/Can_A</VALUE-REF>\r
+                </REFERENCE-VALUE>\r
+              </REFERENCE-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Can</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Can</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Can</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>CanConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Can_A</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanController</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\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="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerBaudRate</DEFINITION-REF>\r
+                      <VALUE>125</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanHWControllerId</DEFINITION-REF>\r
+                      <VALUE>FLEXCAN_A</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerPropSeg</DEFINITION-REF>\r
+                      <VALUE>4</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerSeg1</DEFINITION-REF>\r
+                      <VALUE>4</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanControllerSeg2</DEFINITION-REF>\r
+                      <VALUE>4</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>Mask_1</SHORT-NAME>\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="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanController/CanFilterMask/CanFilterMaskValue</DEFINITION-REF>\r
+                          <VALUE>0</VALUE>\r
+                        </INTEGER-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Tx1</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanIdType</DEFINITION-REF>\r
+                      <VALUE>EXTENDED</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanObjectType</DEFINITION-REF>\r
+                      <VALUE>TRANSMIT</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanMBMask</DEFINITION-REF>\r
+                      <VALUE>4278190080</VALUE>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanControllerRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/Can/CanConfigSet/Can_A</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Can/CanConfigSet/CanHardwareObject/CanFilterMaskRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/Can/CanConfigSet/Can_A/Mask_1</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Com</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Com</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Com</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComConfigurationId</DEFINITION-REF>\r
+                </INTEGER-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>TxGroup</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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPduGroup/ComIPduGroupHandleId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>LedCommandTx</SHORT-NAME>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduCallout</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduRxHandleId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalProcessing</DEFINITION-REF>\r
+                      <VALUE>DEFERRED</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-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="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduGroupRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/Com/ComConfig/TxGroup</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/PduIdRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/EcuC/PduCollection/LedCommandTx</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                    <REFERENCE-VALUE>\r
+                      <DEFINITION-REF DEST="CHOICE-REFERENCE-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComIPduSignalRef</DEFINITION-REF>\r
+                      <VALUE-REF>/switch_node_mpc551x/Com/ComConfig/SetLedLevelTx</VALUE-REF>\r
+                    </REFERENCE-VALUE>\r
+                  </REFERENCE-VALUES>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxIPduMinimumDelayTimeFactor</DEFINITION-REF>\r
+                          <VALUE>0</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <INTEGER-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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>\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>\r
+                              <SHORT-NAME>ComTxMode</SHORT-NAME>\r
+                              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPduComTxModeTrue/ComTxMode</DEFINITION-REF>\r
+                              <PARAMETER-VALUES>\r
+                                <ENUMERATION-VALUE>\r
+                                  <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComIPdu/ComTxIPdu/ComTxModeTrue/ComTxMode/ComTxModeTimePeriodFactor</DEFINITION-REF>\r
+                                  <VALUE>0</VALUE>\r
+                                </INTEGER-VALUE>\r
+                              </PARAMETER-VALUES>\r
+                              <SUB-CONTAINERS/>\r
+                            </CONTAINER>\r
+                          </SUB-CONTAINERS>\r
+                        </CONTAINER>\r
+                      </SUB-CONTAINERS>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>SetLedLevelTx</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Com/ComConfig/ComSignal</DEFINITION-REF>\r
+                  <PARAMETER-VALUES>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitPosition</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComBitSize</DEFINITION-REF>\r
+                      <VALUE>16</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComFirstTimeoutFactor</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComHandleId</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComNotification</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalEndianess</DEFINITION-REF>\r
+                      <VALUE>BIG_ENDIAN</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalInitValue</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalLength</DEFINITION-REF>\r
+                    </INTEGER-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComSignalType</DEFINITION-REF>\r
+                      <VALUE>UINT16</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                    <INTEGER-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutFactor</DEFINITION-REF>\r
+                      <VALUE>0</VALUE>\r
+                    </INTEGER-VALUE>\r
+                    <FUNCTION-NAME-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTimeoutNotification</DEFINITION-REF>\r
+                    </FUNCTION-NAME-VALUE>\r
+                    <ENUMERATION-VALUE>\r
+                      <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComConfig/ComSignal/ComTransferProperty</DEFINITION-REF>\r
+                      <VALUE>TRIGGERED</VALUE>\r
+                    </ENUMERATION-VALUE>\r
+                  </PARAMETER-VALUES>\r
+                  <REFERENCE-VALUES/>\r
+                  <SUB-CONTAINERS/>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComGeneral/ComConfigurationTimeBase</DEFINITION-REF>\r
+                </FLOAT-VALUE>\r
+                <BOOLEAN-VALUE>\r
+                  <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Com/ComGeneral/ComConfigurationUseDet</DEFINITION-REF>\r
+                  <VALUE>false</VALUE>\r
+                </BOOLEAN-VALUE>\r
+              </PARAMETER-VALUES>\r
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+        <MODULE-CONFIGURATION>\r
+          <SHORT-NAME>Port</SHORT-NAME>\r
+          <ADMIN-DATA>\r
+            <SDGS>\r
+              <SDG GID="Autocore::ModuleOptions">\r
+                <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+                <SD GID="ARCCORE_EDITOR_VERSION">1.0.0</SD>\r
+              </SDG>\r
+            </SDGS>\r
+          </ADMIN-DATA>\r
+          <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Port</DEFINITION-REF>\r
+          <MODULE-DESCRIPTION-REF>/ArcCore/Port</MODULE-DESCRIPTION-REF>\r
+          <CONTAINERS>\r
+            <CONTAINER>\r
+              <SHORT-NAME>PortConfigSet</SHORT-NAME>\r
+              <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet</DEFINITION-REF>\r
+              <SUB-CONTAINERS>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Adc</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+                  <PARAMETER-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>AN[8]/ANW</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>8</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_ADC</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>AN[9]/ANX</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>9</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_ADC</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>AN[10]/ANY</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>10</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_ADC</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>AN[11]/ANZ</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>11</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_ADC</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>AN[12]</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>12</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_ADC</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+                <CONTAINER>\r
+                  <SHORT-NAME>Can</SHORT-NAME>\r
+                  <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Port/PortConfigSet/PortContainer</DEFINITION-REF>\r
+                  <PARAMETER-VALUES/>\r
+                  <SUB-CONTAINERS>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>CNTX_A</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>48</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                    <CONTAINER>\r
+                      <SHORT-NAME>CNRX_A</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="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinId</DEFINITION-REF>\r
+                          <VALUE>49</VALUE>\r
+                        </INTEGER-VALUE>\r
+                        <ENUMERATION-VALUE>\r
+                          <DEFINITION-REF DEST="BOOLEAN-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="BOOLEAN-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="BOOLEAN-PARAM-DEF">/ArcCore/Port/PortConfigSet/PortContainer/PortPin/PortPinMode</DEFINITION-REF>\r
+                          <VALUE>PORT_PIN_MODE_CAN</VALUE>\r
+                        </ENUMERATION-VALUE>\r
+                      </PARAMETER-VALUES>\r
+                      <SUB-CONTAINERS/>\r
+                    </CONTAINER>\r
+                  </SUB-CONTAINERS>\r
+                </CONTAINER>\r
+              </SUB-CONTAINERS>\r
+            </CONTAINER>\r
+            <CONTAINER>\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>false</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
+              <SUB-CONTAINERS/>\r
+            </CONTAINER>\r
+          </CONTAINERS>\r
+        </MODULE-CONFIGURATION>\r
+      </ELEMENTS>\r
+    </AR-PACKAGE>\r
+  </TOP-LEVEL-PACKAGES>\r
+</AUTOSAR>
\ No newline at end of file
index 8dcf1bc154e9bbc2afa49674fdd4736f31de25da..579cc0aada74a8a2431c449229b18fe20f636234 100644 (file)
@@ -99,12 +99,14 @@ GEN_IRQ_PRIORITY_TABLE_HEAD {};
 \r
 // --- COUNTERS ---\r
 GEN_COUNTER_HEAD {\r
-       GEN_COUNTER(    OS_TICK_COUNTER,\r
-                                       "OS_TICK_COUNTER",\r
+       GEN_COUNTER(    COUNTER_ID_OsTick,\r
+                                       "COUNTER_ID_OsTick",\r
                                        COUNTER_TYPE_HARD,\r
                                        COUNTER_UNIT_NANO,\r
                                        0xffff,1,1,0 ),\r
-};\r
+};
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;\r
 \r
 // --- MESSAGES ---\r
 \r
@@ -112,7 +114,7 @@ GEN_COUNTER_HEAD {
 #define ALARM_USE\r
 \r
 GEN_ALARM_HEAD {\r
-       GEN_ALARM(      0,"Alarm_4ms",OS_TICK_COUNTER,\r
+       GEN_ALARM(      0,"Alarm_4ms",COUNTER_ID_OsTick,\r
                                1,100,2,0,              /*active,start,cycle,app_mask */\r
                                ALARM_ACTION_SETEVENT, TASK_ID_etask_1, 2, 0 ),\r
 };\r
index 584b1982dc720708d32e90862456cae205f94674..5ef9b45e48b1ace23b7f01a1946622e0a24edf71 100644 (file)
@@ -46,8 +46,7 @@ void btask_3( void );
 \r
 //#define TASK_ID_os_tick                                      8\r
 \r
-\r
-// OS_TICK_COUNTER located in Os.h\r
+#define COUNTER_ID_OsTick                              0
 \r
 // NOT GENERATED( for test system only )\r
 #define SYSTEM_COUNTER_PERIOD                          100
index a03b57771816ced323bab6fa0ce82bb7fc4148b6..a61abb39bcb5b7a4e45d693c64b3e513ed22ae10 100644 (file)
@@ -56,7 +56,7 @@ typedef struct {
        uint32 boffCnt;\r
        uint32 fifoOverflow;\r
        uint32 fifoWarning;\r
-} Can_EcoreStatisticsType;\r
+} Can_Arc_StatisticsType;\r
 \r
 \r
 // uint16: if only Standard IDs are used\r
@@ -109,7 +109,7 @@ typedef union {
          volatile uint32_t TXWRN:1;\r
          volatile uint32_t RXWRN:1;\r
      } B;\r
- } Can_EcoreErrorType;\r
+ } Can_Arc_ErrorType;\r
 \r
 // Each controller has 32 hth's, so the division of 32 will give the\r
 // controller.\r
@@ -131,7 +131,7 @@ void Can_EnableControllerInterrupts( uint8 controller );
 // Hth - for Flexcan, the hardware message box number... .We don't care\r
 \r
 \r
-Can_ReturnType Can_Write( Can_EcoreHTHType hth, Can_PduType *pduInfo );\r
+Can_ReturnType Can_Write( Can_Arc_HTHType hth, Can_PduType *pduInfo );\r
 \r
 void Can_Cbk_CheckWakeup( uint8 controller );\r
 void Can_MainFunction_Write( void );\r
@@ -139,6 +139,6 @@ void Can_MainFunction_Read( void );
 void Can_MainFunction_BusOff( void );\r
 void Can_MainFunction_Wakeup( void );\r
 \r
-void Can_EcoreGetStatistics( uint8 controller, Can_EcoreStatisticsType * stat);\r
+void Can_Arc_GetStatistics( uint8 controller, Can_Arc_StatisticsType * stat);\r
 \r
 #endif /*CAN_H_*/\r
index 900ad52902ab2030520e233c9899f4b8fa68bc50..958d7750ca6f6c629b2f1d50050dc30fb7e8af37 100644 (file)
@@ -66,7 +66,7 @@
 #define CANIF_CONTROLLER_BUSOFF_ID    0x16
 
 #define CANIF_SETWAKEUPEVENT_ID       0x40
-#define CANIF_ECOREERROR_ID           0x41
+#define CANIF_ARCERROR_ID           0x41
 
 void CanIf_Init(const CanIf_ConfigType *ConfigPtr);
 
index 3adb72da46efc7b044c9602f940c48d64d7fd119..db4886fe17198de515f875018806fa5ed2e25d95 100644 (file)
@@ -33,7 +33,7 @@ void CanIf_CancelTxConfirmation( const Can_PduType *PduInfoPtr );
 void CanIf_ControllerBusOff( uint8 Controller );\r
 void CanIf_SetWakeupEvent( uint8 Controller );\r
 \r
-/* Ecore extensions */\r
-void CanIf_EcoreError( uint8 Controller, Can_EcoreErrorType Error );\r
+/* ArcCore extensions */\r
+void CanIf_Arc_Error( uint8 Controller, Can_Arc_ErrorType Error );\r
 \r
 #endif /*CANIF_CBK_H_*/\r
index f8707a4edc3f52823252f9405f0d54bb1df6ec6e..d6e7eadf1f596acf5dd15609158a30451beadfd7 100644 (file)
@@ -24,8 +24,8 @@
 #define COM_H_\r
 \r
 #include "Std_Types.h"\r
-#include "Com_Types.h"\r
-#include "Com_EcoreTypes.h"\r
+#include "ComStack_Types.h"\r
+#include "Com_Arc_Types.h"\r
 \r
 \r
 #ifdef COM_DEV_ERROR_DETECT\r
 #define COM_SW_MINOR_VERSION   0
 #define COM_SW_PATCH_VERSION   0
 \r
-#include "Com_Cfg.h"\r
+#include "Com_Cfg.h"
+#include "Com_Types.h"\r
 #include "Com_PbCfg.h"\r
 #include "Com_Com.h"\r
 #include "Com_Sched.h"\r
 \r
 const Com_ConfigType * ComConfig;\r
 \r
-ComEcoreConfig_type ComEcoreConfig;\r
+Com_Arc_Config_type Com_Arc_Config;\r
 \r
 \r
 \r
@@ -55,13 +56,13 @@ ComEcoreConfig_type ComEcoreConfig;
 \r
 // Define macro for parameter check.\r
 #define PduIdCheck(PduId,ApiId,...) \\r
-       if (PduId >= ComEcoreConfig.ComNIPdu) { \\r
+       if (PduId >= Com_Arc_Config.ComNIPdu) { \\r
                DET_REPORTERROR(COM_MODULE_ID, COM_INSTANCE_ID, ApiId, COM_INVALID_PDU_ID); \\r
                return __VA_ARGS__; \\r
        } \\r
 \r
 #define COM_VALIDATE_SIGNAL(SignalId, ApiId, ...) \\r
-       if (ComConfig->ComSignal[SignalId].ComEcoreIsSignalGroup) { \\r
+       if (ComConfig->ComSignal[SignalId].Com_Arc_IsSignalGroup) { \\r
                DET_REPORTERROR(COM_MODULE_ID, COM_INSTANCE_ID, ApiId, COM_ERROR_SIGNAL_IS_SIGNALGROUP); \\r
                return __VA_ARGS__; \\r
        } \\r
@@ -84,20 +85,20 @@ ComEcoreConfig_type ComEcoreConfig;
 #define ComGetSignal(SignalId) \\r
        const ComSignal_type * Signal = &ComConfig->ComSignal[SignalId]\\r
 \r
-#define ComGetEcoreSignal(SignalId) \\r
-       ComEcoreSignal_type * EcoreSignal = &ComEcoreConfig.ComSignal[SignalId]\\r
+#define ComGetArcSignal(SignalId) \\r
+       Com_Arc_Signal_type * Arc_Signal = &Com_Arc_Config.ComSignal[SignalId]\\r
 \r
 #define ComGetIPdu(IPduId) \\r
        const ComIPdu_type *IPdu = &ComConfig->ComIPdu[IPduId]\\r
 \r
-#define ComGetEcoreIPdu(IPduId) \\r
-       ComEcoreIPdu_type *EcoreIPdu = &ComEcoreConfig.ComIPdu[IPduId]\\r
+#define ComGetArcIPdu(IPduId) \\r
+       Com_Arc_IPdu_type *Arc_IPdu = &Com_Arc_Config.ComIPdu[IPduId]\\r
 \r
 #define ComGetGroupSignal(GroupSignalId) \\r
        const ComGroupSignal_type *GroupSignal = &ComConfig->ComGroupSignal[GroupSignalId]\\r
 \r
-#define ComGetEcoreGroupSignal(GroupSignalId) \\r
-       ComEcoreGroupSignal_type *EcoreGroupSignal = &ComEcoreConfig.ComGroupSignal[GroupSignalId]\\r
+#define ComGetArcGroupSignal(GroupSignalId) \\r
+       Com_Arc_GroupSignal_type *Arc_GroupSignal = &Com_Arc_Config.ComGroupSignal[GroupSignalId]\\r
 \r
 //-------------------------------------------------------------------\r
 // From OSEK_VDX spec...\r
index 1f997129513ea5b68a4edb40d190f8052d69115c..802bc517814a1bb3ad0bd3f21dbeed7d28f36c30 100644 (file)
 
 #ifndef COMSTACK_TYPES_H_\r
 #define COMSTACK_TYPES_H_\r
+
+#define ECUC_SW_MAJOR_VERSION   1
+#define ECUC_SW_MINOR_VERSION   0
+#define ECUC_SW_PATCH_VERSION   0
 \r
 #include "Std_Types.h"\r
 \r
index 598a1c748f2c3cc671688be8ee832307b9ba7891..062623c1a10fadb1d4966c9aa3803d0097d8d213 100644 (file)
@@ -122,9 +122,9 @@ typedef struct {
        uint32 ComFilterX;\r
 \r
 \r
-       uint32 ComFilterEcoreN;\r
-       uint32 ComFilterEcoreNewValue;\r
-       uint32 ComFilterEcoreOldValue;\r
+       uint32 ComFilterArcN;\r
+       uint32 ComFilterArcNewValue;\r
+       uint32 ComFilterArcOldValue;\r
 \r
 } ComFilter_type;\r
 \r
@@ -224,7 +224,7 @@ typedef struct {
         *\r
         * Comment: This is initialized by Com_Init() and should not be configured.\r
         */\r
-       //void *ComEcoreShadowBuffer;\r
+       //void *Com_Arc_ShadowBuffer;\r
 \r
 \r
        /* IPDU id of the IPDU that this signal belongs to.\r
@@ -235,7 +235,7 @@ typedef struct {
        //const uint8 ComIPduHandleId;\r
        //const uint8 ComSignalUpdated;\r
 \r
-       const uint8 ComEcoreEOL;\r
+       const uint8 Com_Arc_EOL;\r
 } ComGroupSignal_type;\r
 \r
 typedef struct {\r
@@ -368,7 +368,7 @@ typedef struct {
         *   - Receive\r
         *   - Not required.\r
         */\r
-       //const uint32 ComEcoreDeadlineCounter;\r
+       //const uint32 Com_Arc_DeadlineCounter;\r
        const uint32 ComTimeoutFactor;\r
 \r
        /* Timeout notification function\r
@@ -388,11 +388,11 @@ typedef struct {
         *   - Send and receive.\r
         *   - Not required.\r
         *\r
-        * Comment: Range 0 to 63. If update bit is used for this signal, then the corresponding parameter ComSignalEcoreUseUpdateBit\r
+        * Comment: Range 0 to 63. If update bit is used for this signal, then the corresponding parameter ComSignalArcUseUpdateBit\r
         *          needs to be set to one.
         */\r
        const uint8 ComUpdateBitPosition;\r
-       const uint8 ComSignalEcoreUseUpdateBit;\r
+       const uint8 ComSignalArcUseUpdateBit;\r
 \r
        /* Filter for this signal\r
         *\r
@@ -404,10 +404,10 @@ typedef struct {
 \r
 \r
        /**** SIGNAL GROUP DATA ****/\r
-       const uint8 ComEcoreIsSignalGroup;\r
+       const uint8 Com_Arc_IsSignalGroup;\r
        const ComGroupSignal_type *ComGroupSignal[COM_MAX_NR_SIGNALS_PER_SIGNAL_GROUP];\r
-       //void *ComEcoreShadowBuffer;\r
-       //void *ComEcoreIPduDataPtr;\r
+       //void *Com_Arc_ShadowBuffer;\r
+       //void *Com_Arc_IPduDataPtr;\r
 \r
 \r
        /* Pointer to the data storage of this signals IPDU.\r
@@ -425,7 +425,7 @@ typedef struct {
        //const uint8 ComSignalUpdated;\r
 \r
 \r
-       const uint8 ComEcoreEOL;\r
+       const uint8 Com_Arc_EOL;\r
 } ComSignal_type;\r
 \r
 \r
@@ -524,7 +524,7 @@ typedef struct ComIPduGroup_type {
        // reference to the group that this group possibly belongs to.\r
        //struct ComIPduGroup_type *ComIPduGroupRef;\r
 \r
-       const uint8 ComEcoreEOL;\r
+       const uint8 Com_Arc_EOL;\r
 } ComIPduGroup_type;\r
 \r
 \r
@@ -607,7 +607,7 @@ typedef struct {
         *\r
         * Comment: These are internal variables and should not be configured.
         */\r
-       //ComTxIPduTimer_type ComEcoreTxIPduTimers;\r
+       //ComTxIPduTimer_type Com_Arc_TxIPduTimers;\r
 \r
        /* Pointer to data storage of this IPDU.\r
         *\r
@@ -626,7 +626,7 @@ typedef struct {
         *\r
         * Comment: It probably makes little sense not to define at least one signal for each IPDU.\r
         */\r
-       //const uint8 ComEcoreNIPduSignalGroupRef;\r
+       //const uint8 Com_Arc_NIPduSignalGroupRef;\r
        const ComSignal_type *ComIPduSignalGroupRef[COM_MAX_NR_SIGNALS_PER_IPDU];\r
 \r
 \r
@@ -644,10 +644,10 @@ typedef struct {
        /*\r
         * The following two variables are used to control the per I-PDU based Rx/Tx-deadline monitoring.\r
         */\r
-       //const uint32 ComEcoreDeadlineCounter;\r
-       //const uint32 ComEcoreTimeoutFactor;\r
+       //const uint32 Com_Arc_DeadlineCounter;\r
+       //const uint32 Com_Arc_TimeoutFactor;\r
 \r
-       const uint8 ComEcoreEOL;\r
+       const uint8 Com_Arc_EOL;\r
 \r
 } ComIPdu_type;\r
 \r
@@ -667,7 +667,7 @@ typedef struct {
        // IPDU definitions. At least one\r
        const ComIPdu_type *ComIPdu;\r
 \r
-       //uint16 ComEcoreNIPdu;\r
+       //uint16 Com_Arc_NIPdu;\r
 \r
        // IPDU group definitions\r
        const ComIPduGroup_type *ComIPduGroup;\r
index e8d3bd25546be9e129664b6bed1680d0babbe8fd..4a328651201fba77ab8abda19beb5bda4eb3aa2b 100644 (file)
@@ -107,7 +107,7 @@ void Mcu_SetMode( const Mcu_ModeType McuMode );
 \r
 typedef uint32_t imask_t;\r
 \r
-/* ecore extensions */\r
+/* ArcCore extensions */\r
 void IntCtrl_InstallVector(void (*func)(), IrqType vector, uint8_t priority, Cpu_t cpu );\r
 void IntCtrl_GenerateSoftInt( IrqType vector );\r
 uint8_t IntCtrl_GetCurrentPriority( Cpu_t cpu);\r
index 65bff1dac6be4293c86e48844892fa2eaf185a4b..569fc17bbeeef777bede23dc25528f0245333aea 100644 (file)
  * -------------------------------- Arctic Core ------------------------------*/
 
 
-
-
-
-
-
-
-/*\r
- * (C) Copyright 2008 ecore, www.ecore.se\r
- */
 \r
 #ifndef OS_H_\r
 #define OS_H_\r
@@ -277,7 +268,9 @@ StatusType ReleaseResource( ResourceType ResID);
 #endif\r
 \r
 #define        RES_SCHEDULER 0\r
-//DeclareResource(RES_SCHEDULER);\r
+//DeclareResource(RES_SCHEDULER);
+#define OS_TASK_PRIORITY_MIN   0
+#define OS_TASK_PRIORITY_MAX   31\r
 \r
 typedef struct OsDriver_s {\r
        int     OsGptChannelRef;\r
@@ -294,7 +287,7 @@ uint32_t Frt_GetTimeElapsed( void );
 /*-------------------------------------------------------------------\r
  * Counters\r
  *-----------------------------------------------------------------*/\r
-typedef uint16 CounterType;\r
+typedef sint16 CounterType;
 \r
 typedef uint32 TickType;\r
 typedef TickType *TickRefType;\r
@@ -443,15 +436,12 @@ StatusType SendMessage( MessageType message_id, ApplicationDataRef dataRef );
 StatusType ReceiveMessage( MessageType message_id, ApplicationDataRef dataRef );\r
 \r
 /*\r
- * ecore extensions\r
+ * ArcCore extensions\r
  */\r
 TickType GetOsTick();\r
 void OsTick(void);\r
 void OsIdle(void);\r
 \r
-/* The OS always have counter 0 */\r
-#define OS_TICK_COUNTER                0\r
-\r
 // Generate conversion macro'\r
 // Todo\r
 #define OS_TICK2NS_OS_TICK_COUNTER(_x)\r
index bcf05462eaf6b317e2d5eea38ff118112e7bdb3c..9b373f5a32c1bd64a035f3441243f2984d9239f9 100644 (file)
@@ -36,7 +36,9 @@
 #elif defined(CFG_MPC5516) || defined(MPC5517)\r
 #include "mpc5516.h"\r
 #elif defined(CFG_MPC5567)\r
-#include "mpc5567.h"\r
+#include "mpc5567.h"
+#elif defined(CFG_MPC5633)
+#include "mpc563m.h"\r
 #else\r
 #error NO MCU SELECTED!!!!\r
 #endif\r
index f3b2a710b0a2b81edbe5eeacfa24d6c599f4d8a3..58cb70a793a40df83453a2fd0043f2b40c4380c0 100644 (file)
--- a/makefile
+++ b/makefile
 #   >make BOARDDIR=mpc551xsim BDIR=system/kernel,examples/simple clean\r
 #\r
 \r
-\r
-\r
-#-include board_config.mk\r
-#export ARCH\r
-#export ARCH_FAM\r
-#export BOARDDIR\r
-\r
 export UNAME:=$(shell uname)\r
 \r
 ifneq ($(findstring Darwin,$(UNAME)),)\r
@@ -45,10 +38,6 @@ export TOPDIR = $(CURDIR)
 export RELEASE = n\r
 export PATH\r
 \r
-#ifeq (${BDIR},)\r
-#      -include saved_config.mk\r
-#endif\r
-\r
 ifneq ($(filter clean_all,$(MAKECMDGOALS)),clean_all)\r
   ifeq (${BOARDDIR},)\r
     $(error BOARDDIR is empty) \r
@@ -62,12 +51,6 @@ export BUILD_TREE=y
 export RELEASE_TREE=n\r
 \r
 override BDIR := system/kernel ${BDIR} \r
-#BDIR += system/kernel/testsystem\r
-\r
-# Misc\r
-#subdir-y += ecum\r
-# Drivers\r
-\r
 \r
 # Tools\r
 # Ugly thing to make things work under cmd.exe \r
@@ -76,10 +59,6 @@ find := $(shell which find)
 \r
 export objdir = obj_$(BOARDDIR)\r
 \r
-#comma = ,\r
-#empty = \r
-#space = $(empty) $(empty)  \r
-\r
 .PHONY: clean\r
 .PHONY: release\r
 \r
@@ -101,7 +80,6 @@ help:
        @echo "  CROSS_COMPILE =$(CROSS_COMPILE)"\r
        @echo ""\r
        \r
-def-$(USE_T32_SIM) += USE_T32_SIM\r
 def-$(USE_DBG_PRINTF) += USE_DBG_PRINTF\r
 \r
 \r
@@ -110,27 +88,16 @@ export CFG_CPU
 export MCU\r
 export def-y+=$(CFG_ARCH_$(ARCH)) $(CFG_MCU) $(CFG_CPU)\r
 \r
-BASEDIR = $(TOPDIR)/$(MOD)\r
-\r
 # We descend into the object directories and build the. That way it's easier to build\r
 # multi-arch support and we don't have to use objdir everywhere.\r
 # ROOTDIR - The top-most directory\r
 # SUBDIR - The current subdirectory it's building.\r
 \r
-test:\r
-       make embUnit/textui embunit/embUnit drivers/test all\r
-\r
 comma:= ,\r
 split = $(subst $(comma), ,$(1))\r
-\r
-\r
-#dir_cmd_goals := $(filter-out %_config config testa all install uninstall clean test save,$(MAKECMDGOALS))\r
 dir_cmd_goals  := $(call split,$(BDIR))\r
-\r
 cmd_cmd_goals := $(filter clean all install,$(MAKECMDGOALS))\r
 \r
-#$(error $(dir_cmd_goals) $(MAKECMDGOALS))\r
-\r
 libs:\r
        mkdir -p $@\r
 \r
@@ -147,10 +114,6 @@ $(dir_cmd_goals) :: show_build FORCE
        +@[ -d $@/$(objdir) ] || mkdir -p $@/$(objdir)\r
        @chmod 777 $@/$(objdir)\r
        $(Q)$(MAKE) -r  -C $@/$(objdir) -f $(CURDIR)/scripts/rules.mk  ROOTDIR=$(CURDIR) SUBDIR=$@ $(cmd_cmd_goals)\r
-\r
-\r
-# --no-print-directory\r
-\r
 .PHONY: test   \r
 \r
 FORCE:\r
index abaa2221e0d2f2f418569e0d6f10e5aee0d30d26..e1eec7e1c744cac8ccb2b2d43a0f645163934a84 100644 (file)
@@ -263,7 +263,7 @@ typedef enum {
   FLS_SST25XX_ERASE,\r
   FLS_SST25XX_READ,\r
   FLS_SST25XX_WRITE,\r
-} Fls_SST25xx_EcoreJobType;\r
+} Fls_SST25xx_Arc_JobType;\r
 \r
 /* Spi job state */\r
 typedef enum {\r
@@ -278,7 +278,7 @@ typedef struct {
        Fls_AddressType flsAddr;\r
        uint32 left;\r
        Job_StateType state;\r
-       Fls_SST25xx_EcoreJobType mainState;\r
+       Fls_SST25xx_Arc_JobType mainState;\r
        Spi_SequenceType currSeq;\r
        uint32 chunkSize;\r
 } Fls_SST25xx_JobInfoType;\r
@@ -292,7 +292,7 @@ typedef struct {
   // Status of driver\r
   MemIf_StatusType status;\r
   MemIf_JobResultType jobResultType;\r
-  Fls_SST25xx_EcoreJobType jobType;\r
+  Fls_SST25xx_Arc_JobType jobType;\r
 \r
   // Saved information from API calls.\r
   Fls_AddressType flsAddr;\r
index fcd9bd057545a1dfd1ccd366570e92c08fbe99a7..d57f160ba9255afdbbbf9ecb7045203bb1cadf1c 100644 (file)
@@ -171,8 +171,8 @@ void EcuM_AL_DriverInitTwo(const EcuM_ConfigType* ConfigPtr)
 void EcuM_AL_DriverInitThree(const EcuM_ConfigType ConfigPtr)\r
 {\r
 #if defined(USE_CANIF)\r
-       // Startup the CAN interafce; due to the missing COM manager\r
-       CanIf_InitController(CAN_CTRL_A, 0);\r
-       CanIf_SetControllerMode(CAN_CTRL_A, CANIF_CS_STARTED);\r
+       // Startup the CAN interface; due to the missing COM manager\r
+       CanIf_InitController(CANIF_CHANNEL_0, CANIF_CHANNEL_0_CONFIG_0);\r
+       CanIf_SetControllerMode(CANIF_CHANNEL_0, CANIF_CS_STARTED);\r
 #endif\r
 }\r
index 5a0df953ae5cb5b2b7d37a3b89e3814a8e868bbb..b48925e49b6b98686ed3f54c9b48600b22095707 100644 (file)
@@ -280,25 +280,33 @@ StatusType GetElapsedCounterValue( CounterType counter_id, TickRefType val, Tick
  * The OsTick():\r
  * 1. The Decrementer is setup by Frt_Start(period_ticks)\r
  * 2. Frt_Init() setup INTC[7] to trigger OsTick\r
- * 3. OsTick() then increment counter 0\r
- *    ( COUNTER_ID_OS_TICK = OS_TICK_COUNTER )\r
+ * 3. OsTick() then increment counter os_tick_counter if used
  */\r
 \r
 /*\r
  * Non-Autosar stuff\r
  */\r
-\r
-void OsTick( void ) {\r
-       counter_obj_t *c_p = Oil_GetCounter(OS_TICK_COUNTER);\r
-\r
-       os_sys.tick++;\r
-\r
-       IncCounter(c_p);\r
-\r
-//     os_sys.tick = c_p->val;\r
-\r
-       check_alarms(c_p);\r
-       check_stbl(c_p);\r
+
+/* The id of the counter driven by the os tick, or -1 if not used.
+ * Using weak linking to set default value -1 if not set by config.
+ */
+CounterType Os_Arc_OsTickCounter __attribute__((weak)) = -1;
+\r
+void OsTick( void ) {
+       // if not used, os_tick_counter < 0
+       if (Os_Arc_OsTickCounter >= 0) {
+
+               counter_obj_t *c_p = Oil_GetCounter(Os_Arc_OsTickCounter);
+
+               os_sys.tick++;
+
+               IncCounter(c_p);
+
+       //      os_sys.tick = c_p->val;
+
+               check_alarms(c_p);
+               check_stbl(c_p);
+       }
 }\r
 \r
 #if 0\r
index a45c98d7cd7778fef1674eeaae6824acae60a8b9..7708f7d98751ee9798ea4ea9b10ad9ae6003a8ca 100644 (file)
@@ -55,11 +55,14 @@ TaskType Os_CreateIsr( void (*entry)(void ), uint8_t prio, const char *name )
        pcb_t *pcb = os_alloc_new_pcb();\r
        strncpy(pcb->name,name,TASK_NAME_SIZE);\r
        pcb->vector = -1;\r
-       pcb->prio = prio;\r
+       pcb->prio = prio;
+       /* TODO: map to interrupt controller priority */
+       assert(prio<=OS_TASK_PRIORITY_MAX);\r
        pcb->proc_type  = PROC_ISR2;\r
        pcb->state = ST_SUSPENDED;\r
        pcb->entry = entry;\r
-       pcb->stack.top = &stackTop;\r
+       pcb->stack.top = &stackTop;
+\r
 \r
        return os_add_task(pcb);\r
 }\r
index 6b5aed1a3eef23a259551fd5f9ef7a3546221050..8a2a1d4fec59baa28b81b9e456bd9dbedcf4c47e 100644 (file)
@@ -145,6 +145,7 @@ void InitOS( void ) {
        // TODO: Isn't this just EXTENED tasks ???
        for( i=0; i < Oil_GetTaskCnt(); i++) {
                tmp_pcb = os_get_pcb(i);
+               assert(tmp_pcb->prio<=OS_TASK_PRIORITY_MAX);
                os_pcb_rom_copy(tmp_pcb,os_get_rom_pcb(i));
                if( !(tmp_pcb->proc_type & PROC_ISR) ) {
                        os_pcb_make_virgin(tmp_pcb);
index ad0c7749084dc5726c42c3a00dc7e0518218ace8..f231011b0e369e3830290d5ca100f3f661d3f3b7 100644 (file)
@@ -260,21 +260,23 @@ typedef struct {
 \r
 \r
 GEN_COUNTER_HEAD {\r
-       GEN_COUNTER(COUNTER_ID_os_tick, "OS_TICK_COUNTER",COUNTER_TYPE_HARD,\r
+       GEN_COUNTER(COUNTER_ID_os_tick, "COUNTER_ID_OsTick",COUNTER_TYPE_HARD,\r
                                COUNTER_UNIT_NANO, 0xffff,1,1,0 ),\r
        GEN_COUNTER(COUNTER_ID_soft_1,  "counter_soft_1",COUNTER_TYPE_SOFT,\r
                                COUNTER_UNIT_NANO, 10,1,1,0),\r
        GEN_COUNTER(COUNTER_ID_soft_2,  "counter_soft_2",COUNTER_TYPE_SOFT,\r
                                COUNTER_UNIT_NANO, 100,1,1,0),\r
 };\r
+
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_OsTick;
 \r
 //-------------------------------------------------------------------\r
 \r
 #ifdef ALARM_USE\r
 GEN_ALARM_HEAD {\r
        {\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],\r
+               .counter_id = COUNTER_ID_OsTick,\r
                .action =\r
                {\r
                                .type = ALARM_ACTION_ACTIVATETASK,\r
@@ -284,8 +286,8 @@ GEN_ALARM_HEAD {
        },\r
                {\r
                /* Set EVENT_1 in etask_sup_m, driven by soft counter */\r
-               .counter = &counter_list[OS_TICK_COUNTER],\r
-               .counter_id = OS_TICK_COUNTER,\r
+               .counter = &counter_list[COUNTER_ID_OsTick],\r
+               .counter_id = COUNTER_ID_OsTick,\r
                .action = {\r
                                .type = ALARM_ACTION_SETEVENT,\r
                                .task_id = TASK_ID_etask_sup_m,\r
index 959ff78370ac0be5f799f0bc182f7455f2f43436..2b4029868ce2cd04b3dc5f2e7611b0e0aea658ba 100644 (file)
@@ -68,7 +68,7 @@
 #define RES_ID_INT_1           1\r
 #define RES_ID_EXT_1           2\r
 \r
-// OS_TICK_COUNTER located in Os.h\r
+#define COUNTER_ID_OsTick              0\r
 // Driver all alarms\r
 #define COUNTER_ID_soft_1              1\r
 // Drives scheduletable 0\r
index b60165a00133a1d54e67f2900cb365af8e092af6..1080e61030432ed64c08984b7074da950fab6e59 100644 (file)
@@ -119,7 +119,7 @@ dialog_project:
         pos 1. 1. 14.\r
         text "CPU:"\r
         pos 1. 2. 10.\r
-CPU:   PULLDOWN "mpc5516,mpc5554,CortexM3"\r
+CPU:   PULLDOWN "mpc5516,mpc5554,mpc5633M,CortexM3"\r
         (\r
         )\r
         HEADER "Project config"\r
@@ -142,6 +142,7 @@ P_PATH: EDIT "&cfg_project_path_g" ""
 save_close:\r
   &cfg_cpu_g=dialog.string(CPU)\r
   &cfg_project_path_g=dialog.string(P_PATH)\r
+  sys.cpu &cfg_cpu_g\r
   do config save\r
 win_close:\r
   dialog.end\r
@@ -173,5 +174,6 @@ win_close:
 \r
 \r
 \r
+\r
 \r
 \r
index 9eaaf6393c8c15780e84f958a0979132e6dbcb42..dd5027db533988d9f083b8c0cbc52cede3e91087 100644 (file)
@@ -54,6 +54,7 @@ postload_CortexM3:
 \r
 postload_MPC5516:\r
 postload_MPC5554:\r
+postload_mpc5633M:\r
   RETURN\r
 \r
 //-------------------------------------------------------------\r
@@ -121,5 +122,6 @@ path:
 \r
 \r
 \r
+\r
 \r
 \r