打印

AT32F403A芯片SDIO使用DMA连续写数据卡死

[复制链接]
1350|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AT32F403A芯片SDIO使用DMA连续写数据卡死。工程用了rtthread nano,fatfs。使用开发板和我自己的主板都是在sd_mult_blocks_write函数最后一步陷入死循环。
单块写入没问题,使用轮询模式也没问题。这个函数是官方例程at32_sdio.c种的。
该怎么办

使用特权

评论回复
沙发
呐咯密密| | 2024-11-9 17:34 | 只看该作者
最后一步?是return卡死?

使用特权

评论回复
板凳
豆杀包| | 2024-11-9 17:57 | 只看该作者
不应该卡死在return函数的吧

使用特权

评论回复
评论
碧落鸟 2024-11-11 23:40 回复TA
是在while循环中,卡状态不对出不来while循环 
地板
碧落鸟|  楼主 | 2024-11-11 23:29 | 只看该作者
呐咯密密 发表于 2024-11-9 17:34
最后一步?是return卡死?

在最后一个while循环中出不来。
是我没有表述清楚

使用特权

评论回复
5
碧落鸟|  楼主 | 2024-11-11 23:34 | 只看该作者

在这个while循环中出不来

使用特权

评论回复
6
碧落鸟|  楼主 | 2024-11-11 23:49 | 只看该作者
本帖最后由 碧落鸟 于 2024-11-11 23:52 编辑

还有一个问题,如果DMA模式可用,官方提供的块写入函数DMA相比轮询模式能不能减少cpu占用?
因为我看到函数最后总是要等待完成才能退出函数,这样和轮询方式的性能不是相同了吗?

使用特权

评论回复
7
呐咯密密| | 2024-11-14 20:37 | 只看该作者
可以啊,虽然最后还是要等,但是中间写数据的过程是可以释放CPU的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝