Index: firmware/App/Services/SystemCommDD.c =================================================================== diff -u -r830213bc6dcc1a684610caf78c79d55f2cb41e93 -r61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688 --- firmware/App/Services/SystemCommDD.c (.../SystemCommDD.c) (revision 830213bc6dcc1a684610caf78c79d55f2cb41e93) +++ firmware/App/Services/SystemCommDD.c (.../SystemCommDD.c) (revision 61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688) @@ -53,6 +53,7 @@ COMM_BUFFER_OUT_CAN_DD_ALARM, COMM_BUFFER_OUT_CAN_FP_ALARM, COMM_BUFFER_OUT_CAN_DD_2_TD, + COMM_BUFFER_OUT_CAN_DD_2_UI, COMM_BUFFER_OUT_CAN_DD_BROADCAST, COMM_BUFFER_OUT_CAN_FP_BROADCAST, COMM_BUFFER_OUT_DD_CAN_PC, @@ -65,6 +66,7 @@ COMM_BUFFER_IN_CAN_TD_ALARM, COMM_BUFFER_IN_CAN_UI_ALARM, COMM_BUFFER_IN_CAN_TD_2_DD, + COMM_BUFFER_IN_CAN_UI_2_DD, COMM_BUFFER_IN_CAN_TD_BROADCAST, COMM_BUFFER_IN_CAN_UI_BROADCAST, COMM_BUFFER_IN_DD_CAN_PC, Index: firmware/DD.dil =================================================================== diff -u -r0912db0c205c38ec57140f53934cfbedffe6f981 -r61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688 --- firmware/DD.dil (.../DD.dil) (revision 0912db0c205c38ec57140f53934cfbedffe6f981) +++ firmware/DD.dil (.../DD.dil) (revision 61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688) @@ -1,4 +1,4 @@ -# RM46L852PGE 05/01/26 14:49:59 +# RM46L852PGE 05/03/26 15:38:31 # ARCH=RM46L852PGE # @@ -3322,7 +3322,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_40_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_ENA_REF.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA_REF.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA_REF.VALUE=0x00000001 DRIVER.CAN.VAR.CAN_2_MESSAGE_64_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_56_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_48_MASK.VALUE=0x000007FF @@ -3499,7 +3499,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_1_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_31_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_ENA.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ENA.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ENA.VALUE=0x80000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_8_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_PORT_RX_PSL.VALUE=1 DRIVER.CAN.VAR.CAN_2_MESSAGE_41_ID.VALUE=41 @@ -3609,7 +3609,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_40_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_32_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_ENA.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ENA.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ENA.VALUE=0x80000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_5_INT_ENA.VALUE=0x00000400 DRIVER.CAN.VAR.CAN_1_MESSAGE_4_BOOL_ENA.VALUE=1 DRIVER.CAN.VAR.CAN_3_MESSAGE_9_RTR.VALUE=0x00000000 @@ -3629,7 +3629,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_24_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_16_EOB.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_DIR.VALUE=0x20000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_DIR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_32_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_24_MASK.VALUE=0x000007FF @@ -3918,7 +3918,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_40_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_LEVEL.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_LEVEL.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_LEVEL.VALUE=0x00010000 DRIVER.CAN.VAR.CAN_1_MESSAGE_10_ID.VALUE=0x103 DRIVER.CAN.VAR.CAN_2_MESSAGE_31_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_23_DLC.VALUE=8 @@ -4044,7 +4044,7 @@ DRIVER.CAN.VAR.CAN_3_AUTO_BUS_ON.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_31_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_INT_ENA_REF.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA_REF.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA_REF.VALUE=0x00000001 DRIVER.CAN.VAR.CAN_3_MESSAGE_63_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_3_MESSAGE_55_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_3_MESSAGE_47_MASK.VALUE=0x000007FF @@ -4233,7 +4233,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_58_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_31_ID.VALUE=31 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_ID.VALUE=23 -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ID.VALUE=0 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ID.VALUE=0x40 DRIVER.CAN.VAR.CAN_3_MESSAGE_1_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_3_MESSAGE_5_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_41_EOB.VALUE=0x00000000 @@ -4279,7 +4279,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_39_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_ENA.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA.VALUE=0x00000400 DRIVER.CAN.VAR.CAN_3_MESSAGE_59_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_60_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_52_INT_LEVEL.VALUE=0x00000000 @@ -4289,7 +4289,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_40_ID.VALUE=40 DRIVER.CAN.VAR.CAN_1_MESSAGE_32_ID.VALUE=32 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_ID.VALUE=24 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ID.VALUE=16 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ID.VALUE=0x41 DRIVER.CAN.VAR.CAN_2_MESSAGE_50_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_42_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_34_DLC.VALUE=8 @@ -4309,7 +4309,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_38_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_32_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_BOOL_ENA.VALUE=0 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_BOOL_ENA.VALUE=0 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_BOOL_ENA.VALUE=1 DRIVER.CAN.VAR.CAN_3_PORT_RX_DOUT.VALUE=0 DRIVER.CAN.VAR.CAN_3_MESSAGE_8_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_41_RTR.VALUE=0x00000000 @@ -4643,7 +4643,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_31_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_23_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_MASK.VALUE=0x000007FF -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA.VALUE=0x00000800 DRIVER.CAN.VAR.CAN_1_MESSAGE_15_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_8_ENA.VALUE=0x80000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_21_ID.VALUE=21 @@ -5051,7 +5051,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_49_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_31_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_BOOL_ENA.VALUE=0 -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_BOOL_ENA.VALUE=0 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_BOOL_ENA.VALUE=1 DRIVER.CAN.VAR.CAN_3_MESSAGE_51_ID.VALUE=51 DRIVER.CAN.VAR.CAN_3_MESSAGE_43_ID.VALUE=43 DRIVER.CAN.VAR.CAN_3_MESSAGE_35_ID.VALUE=35 Index: firmware/include/can.h =================================================================== diff -u -r88662452040aa91ce9a7da032e9ed1865517bdd5 -r61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688 --- firmware/include/can.h (.../can.h) (revision 88662452040aa91ce9a7da032e9ed1865517bdd5) +++ firmware/include/can.h (.../can.h) (revision 61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688) @@ -656,6 +656,7 @@ | (uint32)0x00002000U \ | (uint32)0x00004000U \ | (uint32)0x00008000U \ + | (uint32)0x00010000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ @@ -670,7 +671,6 @@ | (uint32)0x00000000U \ | (uint32)0x00000000U \ | (uint32)0x00000000U \ - | (uint32)0x00000000U \ | (uint32)0x00000000U) #define CAN1_INTMUX1_CONFIGVALUE ((uint32)0x00000000U \ Index: firmware/source/can.c =================================================================== diff -u -r6e61eeb9768451dc1390037ff83bcbfbbbaf01ca -r61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688 --- firmware/source/can.c (.../can.c) (revision 6e61eeb9768451dc1390037ff83bcbfbbbaf01ca) +++ firmware/source/can.c (.../can.c) (revision 61ae50ebf0659ebf2deb9c68b2101d7d8d6a9688) @@ -129,6 +129,7 @@ | (uint32)0x00002000U | (uint32)0x00004000U | (uint32)0x00008000U + | (uint32)0x00010000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)0x00000000U @@ -143,7 +144,6 @@ | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)0x00000000U - | (uint32)0x00000000U | (uint32)0x00000000U; canREG1->INTMUXx[1U] = (uint32)0x00000000U @@ -449,6 +449,44 @@ canREG1->IF2CMD = (uint8) 0xF8U; canREG1->IF2NO = 14U; + /** - Initialize message 15 + * - Wait until IF1 is ready for use + * - Set message mask + * - Set message control word + * - Set message arbitration + * - Set IF1 control byte + * - Set IF1 message number + */ + /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status check for execution sequence" */ + while ((canREG1->IF1STAT & 0x80U) ==0x80U) + { + } /* Wait */ + + canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x40U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF1CMD = (uint8) 0xF8U; + canREG1->IF1NO = 15U; + + /** - Initialize message 16 + * - Wait until IF2 is ready for use + * - Set message mask + * - Set message control word + * - Set message arbitration + * - Set IF2 control byte + * - Set IF2 message number + */ + /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status check for execution sequence" */ + while ((canREG1->IF2STAT & 0x80U) ==0x80U) + { + } /* Wait */ + + canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x41U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)8U; + canREG1->IF2CMD = (uint8) 0xF8U; + canREG1->IF2NO = 16U; + /** - Setup IF1 for data transmission * - Wait until IF1 is ready for use * - Set IF1 control byte