硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3421|回复: 3
收起左侧

[STM32H7] V7板子 QSPI flash 驱动W25q256 问题

[复制链接]

29

主题

99

回帖

186

积分

初级会员

积分
186
发表于 2020-8-28 07:23:36 | 显示全部楼层 |阅读模式
硬汉你好,  QSPI falsh驱动里面, 这样死等,学习测试可以, 真正用在产品上 不太好吧, 如果是擦除,特别是整篇擦除 还是要等不少时间       
        /* 等待命令发送完毕 */
        while(CmdCplt == 0);
        CmdCplt = 0;
       
        /* 等待编程结束 */
        StatusMatch = 0;
        QSPI_AutoPollingMemReady(&QSPIHandle);       
        while(StatusMatch == 0);
        StatusMatch = 0;





死等问题

死等问题
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2020-8-28 09:01:47 | 显示全部楼层
这里我简单普及点知识。

现在的DMA应用主要是分为两类。
1、一类就是直接在DMA中断里面处理消息,像H7自带的ADC,DAC等。

这类应用我们可以直接在中断里面处理消息,或者搞个双缓冲。

这种应用在RTOS下和裸机下使用都比较简单。

2、还有一类就是图形加速DMA2D,你这里看到的QSPI Flash DMA,SDIO DMA等

这类DMA应用,我们一般都需要配合GUI,FAT文件系统等一起使用。

这种情况下,要分裸机和RTOS两种做分析

裸机情况下:
如果你不做死等,而做个中断,整个变量标识什么的做等待,应用层代码基本没有办法写了,比如你一个简单的GUI桌面背景部分重绘,他需要进入那些DMA2D加速,等待那些标志完成。
应用层代码实现非常难。

RTOS下:
这种情况下,在RTOS下才能发挥威力,以GUI为例,我们都是直接将其丢到最低优先级任务里面跑。文件系统类的QSPI Flash,SD卡,eMMC,NAND等,也可以直接丢到低优先级任务,或者其他稍高优先级任务,完全不影响其他高优先级任务运行。



回复

使用道具 举报

29

主题

99

回帖

186

积分

初级会员

积分
186
 楼主| 发表于 2020-8-28 12:58:20 | 显示全部楼层
另外问个问题,  V7自带的例程里, QSPI 写保护好像没处理?  
回复

使用道具 举报

29

主题

99

回帖

186

积分

初级会员

积分
186
 楼主| 发表于 2020-8-28 13:04:02 | 显示全部楼层
感谢,安富莱的例程碾压市面上的开发板例程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-10 07:17 , Processed in 0.343698 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表