GD32E230 SPI DMA 优先级
多设备冲突解决SPI+DMA 驱动 SD 卡时,同时用 DMA 驱动 UART,SD 卡频繁掉盘。将 SPI DMA 通道优先级设为高,UART DMA 设为中,掉盘问题消失。因 DMA 优先级低时,UART 请求会抢占 SPI 带宽,导致 SPI 传输中断。
在双路WS2812B控制场景中,建议为两个独立的SPI通道分配不同的DMA通道,并均设置为最高优先级
高优先级的DMA请求会优先占用总线带宽,避免低优先级任务干扰关键数据的及时传输
若启用SPI的FIFO缓冲区,需调整DMA传输单元大小以匹配FIFO深度,防止溢出或欠载
如果使用DMA完成中断,应在NVIC中为对应中断向量分配合理优先级
通常,DMA中断优先级应高于普通任务,但低于硬实时事件
在复杂系统中,多个DMA通道可能共享同一中断线,此时需通过软件轮询或硬件仲裁机制确保关键任务优先响应
通过错开传输时间窗口或分时复用策略缓解竞争
减小匹配电容值至数据手册允许范围内;添加适当阻值的反馈电阻以优化增益;选用低能耗晶体缩短起振时间
当FIFO满时触发DMA请求,可减少CPU干预频率
GD32E230的SPI DMA优先级应根据实际需求动态调整,核心原则是“关键路径高优、同类任务均衡”
页:
[1]