\uD83D\uDCD8 Background
For MS16 we use a super loop architecture to drive all data transitions through each project. Each controller board has 3 cycle speeds it can transmit and receive at. Our receiving is ISR based and transmitting depends on the CAN TX Mailbox. We also autogenerate rx_structs
and tx_structs
to hold all messages using YAML files for each project.
...
can_hw_transmit
uses the STM32’s mailbox to transmit messages. A mailbox is basically a hardware storage unit, and for CAN TX, the mailbox also schedules out transmissions. We attempt 3 times to transmit the given message, but if the mailbox is full, then it suggests that CAN is not connected or another underlying issue exists in the TX process.
\uD83C\uDF08 Options considered
Proposal: Redesign CAN architecture to be main clock of system, since its the main mode of communication between different boards of the car.
...