庄永 发表于 2023-6-17 23:24:35

SDIO+DMA报Transmit FIFO underrun

使用FreeRTOS+FatFS读写SD卡,使用DMA写的时候出现Transmit FIFO underrun报错,有人遇到过吗?

eric2013 发表于 2023-6-18 08:19:33

SDIO的硬件流控制开了吧,别的就是SD卡兼容问题,还有就是使用最新的SDIO驱动。

庄永 发表于 2023-6-18 15:08:22

eric2013 发表于 2023-6-18 08:19
SDIO的硬件流控制开了吧,别的就是SD卡兼容问题,还有就是使用最新的SDIO驱动。

用的硬汉用HAL库做的V6的BSP库里面的SDIO驱动,没加FreeRTOS测试是OK的,加了FreeRTOS之后不行了,降低SDIO速度的话情况会好一点。

eric2013 发表于 2023-6-19 09:21:15

庄永 发表于 2023-6-18 15:08
用的硬汉用HAL库做的V6的BSP库里面的SDIO驱动,没加FreeRTOS测试是OK的,加了FreeRTOS之后不行了,降低SD ...

那得排查下是那里的问题导致的,正常情况下应该没有影响。

可以先试试你这个整合功能先不要启动FreeRTOS,直接在main函数里面测试SDIO是否正常,正常后,再开启FreeRTOS,并且仅创建一个任务试试。

庄永 发表于 2023-6-19 09:30:30

eric2013 发表于 2023-6-19 09:21
那得排查下是那里的问题导致的,正常情况下应该没有影响。

可以先试试你这个整合功能先不要启动FreeRT ...

怀疑是FreeRTOS使用外部SDRAM做堆,在FreeRTOS里面使用Fatfs的时候用到了SDRAM的空间,另外SDRAM也用着显示屏的显存,出现了DMA2D和DMA同时访问导致的问题。
页: [1]
查看完整版本: SDIO+DMA报Transmit FIFO underrun