Meng Luo

MPC5748G Multinuclear CAN

Discussion created by Meng Luo on Mar 29, 2018

Hello,
   I've got some trouble in using the MPC5748G development board,
I put three CAN on three cores (Z4_0, Z4_1, Z2), When "Z4_1" or "Z2" receives the CAN message, "Z4_0" stops working.

   

The following is the code(CAN configuration is different):

int main(void)
{
#ifdef PEX_RTOS_INIT
PEX_RTOS_INIT();
#endif

#ifdef PEX_RTOS_INIT
PEX_RTOS_INIT();
#endif

 

CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_FORCIBLE);
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);

 

PINS_DRV_ClearPins(LED_PORT, (1 << LED0));

 

FLEXCAN_DRV_Init(INST_CANCOM1, &canCom1_State, &canCom1_InitConfig0);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX, &dataInfo, RX_MSG_ID);

 

while(1)
{
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX, &recvBuff);
while(FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1, RX_MAILBOX) == STATUS_BUSY);
if((recvBuff.data[0] == LED0_CHANGE_REQUESTED) &&recvBuff.msgId == RX_MSG_ID)
   {
      PINS_DRV_TogglePins(LED_PORT, (1 << LED0));
   }
}

 

#ifdef PEX_RTOS_START
PEX_RTOS_START()
#endif
for(;;) {
if(exit_code != 0) {
break;
   }
}
return exit_code;

 

#ifdef PEX_RTOS_START
PEX_RTOS_START();
#endif

for(;;) {
if(exit_code != 0) {
break;
      }
   }
return exit_code;
}

Outcomes