SPI 永久等待 CPU 干预导致的挂起场景
受影响版本
B详细信息
当 CPU 读取或写入 SPI FIFO 时,如果使用 FIFO 电平触发器来生成中断,系统可能会发生挂起。在处理第一个中断后,FIFO 电平可能会永久低于或高于配置的阈值,并且不会生成后续 CPU 中断。这可能会导致 SPI 永久等待 CPU 干预,因此导致挂起的场景。权变措施
- 在 SPI 中使用 FIFO 状态轮询,而不 依赖于 FIFO 电平配置的中断,或
- 仅使用空/溢出中断,而不使用 FIFO 电平配置的中断,或
- 使用 FIFO 电平配置的中断以及空(适用于 TXFIFO)和溢出(适用于 RXFIFO)作为失效防护,以避免挂起的场景。