feat(can): 实现CANFD协议栈及DMA优化

- 添加CANFD DMA接收功能,使用32位宽数据传输提升效率
- 实现CANFD收发队列管理,支持异步消息处理防止丢帧
- 重构CAN中断处理机制,采用FIFO0中断配合DMA完成数据接收
- 添加CANFD DLC长度转换表,规范化数据长度处理
- 实现临界区保护机制,确保多线程环境下的数据安全
- 优化发送队列机制,使用邮箱空闲中断进行消息调度
- 添加DMA错误处理,增强系统稳定性
- 移除原有8字节限制,支持CANFD最大64字节数据传输
This commit is contained in:
cbb
2026-05-15 23:04:04 +08:00
parent 94d5fda0b6
commit 12b2577d6b
4 changed files with 1756 additions and 190 deletions
+1
View File
@@ -57,6 +57,7 @@ u8 can_gpio_init(void); // CAN 引脚初始化
void can_config(void); // CAN 初始化
void canfd_config(void); // CANFD 初始化
void can_dma_init(void); // CAN DMA 初始化
void CAN0_TX_IRQHandler(void); // CAN 发送中断处理函数
void CAN0_RX0_IRQHandler(void); // CAN 接收中断处理函数
void DMA0_Channel4_IRQHandler(void); // DMA 通道 4 中断处理函数 (CAN 接收)
void DMA0_Channel5_IRQHandler(void); // DMA 通道 5 中断处理函数 (CAN 发送)