70 palSetPadMode(OPENBLT_CAN_TX_PORT, OPENBLT_CAN_TX_PIN, PAL_MODE_ALTERNATE(EFI_CAN_TX_AF));
71 palSetPadMode(OPENBLT_CAN_RX_PORT, OPENBLT_CAN_RX_PIN, PAL_MODE_ALTERNATE(EFI_CAN_RX_AF));
74 canStart(&OPENBLT_CAND, cfg);
90 if ((txMsgId & 0x80000000) == 0)
93 CAN_SID(frame) = txMsgId;
94 CAN_ISX(frame) = CAN_IDE_STD;
98 txMsgId &= ~0x80000000;
100 CAN_EID(frame) = txMsgId;
101 CAN_ISX(frame) = CAN_IDE_EXT;
106 memcpy(frame.
data8, data, len);
108 canTransmitTimeout(&OPENBLT_CAND, CAN_ANY_MAILBOX, &frame, TIME_MS2I(100));
125 constexpr blt_int32u rxMsgId = BOOT_COM_CAN_RX_MSG_ID;
128 if (MSG_OK != canReceiveTimeout(&OPENBLT_CAND, CAN_ANY_MAILBOX, &frame, TIME_IMMEDIATE)) {
134 constexpr bool configuredAsExt = (rxMsgId & 0x80000000) != 0;
135 if (configuredAsExt != CAN_ISX(frame)) {
141 if (CAN_ISX(frame)) {
142 if (CAN_EID(frame) != (rxMsgId & ~0x80000000)) {
147 if (CAN_SID(frame) != rxMsgId) {
155 memcpy(data, frame.
data8, frame.
DLC);
161#ifdef BOOTLOADER_CAN_LISTENER