15#include "common/phal/can.h"
24#define CAN_TX_BACKPRESSURE_MS (2)
25#define CAN_TX_QUEUE_LENGTH (64)
26#define CAN_RX_QUEUE_LENGTH (64)
28#define CAN_TX_MAILBOX_CNT (3)
29#define CAN_TX_TIMEOUT_MS (15)
30#define CAN_TX_BLOCK_TIMEOUT (30 * 16000)
32#define CAN_MAILBOX_HIGH_PRIO 0
33#define CAN_MAILBOX_MED_PRIO 1
34#define CAN_MAILBOX_LOW_PRIO 2
37#define CAN_EFF_FLAG 0x80000000U
38#define CAN_RTR_FLAG 0x40000000U
39#define CAN_ERR_FLAG 0x20000000U
42#define CAN_SFF_MASK 0x000007FFU
43#define CAN_EFF_MASK 0x1FFFFFFFU
44#define CAN_ERR_MASK 0x1FFFFFFFU
56#if defined(STM32G474xx)
58#define GET_PERIPH_IDX(bus) ((bus == FDCAN1) ? CAN1_IDX : ((bus == FDCAN2) ? CAN2_IDX : CAN3_IDX))
61#define GET_PERIPH_IDX(bus) ((bus == CAN1) ? CAN1_IDX : CAN2_IDX)
64#if defined(STM32G474xx)
65#define NUM_CAN_PERIPHERALS_MAX 3
67#define NUM_CAN_PERIPHERALS_MAX 2
76extern volatile uint32_t last_can_rx_time_ms;
79#if defined(STM32F407xx)
81extern QueueHandle_t q_tx_can[][CAN_TX_MAILBOX_CNT];
82#elif defined(STM32G474xx)
84extern QueueHandle_t q_tx_can[];
86#error "Unsupported architecture"
88extern QueueHandle_t q_rx_can;
92#include "common/can_library/generated/can_router.h"
96bool CAN_library_init();
98#if defined(STM32G474xx)
101void CAN_handle_irq(CAN_TypeDef *bus, uint8_t fifo);
Wrapper macros for FreeRTOS constructs (tasks, queues, semaphores) to simplify static memory allocati...
Definition can_common.h:17
Definition can_common.h:70