/****
***********************************************************************************************************************************************************************************
* @version V1.0
* @date 2024-2-23
*
@author 反客科技
************************************************************************************************************************************************************************************
* @description
*
* 实验平台:反客STM32H743XIH6核心板 (型号:FK743M4-XIH6)
* 淘宝地址:
https://shop212360197.taobao.com * QQ交流群:536665479
*
>>>>> 文件说明:
*
* 1.例程参考于官方驱动文件 stm32h743i_eval_qspi.c
* 2.例程使用的是 QUADSPI_BK1
* 3.提供的读写函数均使用HAL库函数直接操作,没有用到DMA和中断
* 4.默认配置QSPI驱动时钟为120M
*
>>>>> 重要说明:
*
* 1.W25QXX的擦除时间是限定的!!! 手册给出的典型参考值为: 4K-45ms, 32K-120ms ,64K-150ms,整片擦除20S
*
* 2.W25QXX的写入时间是限定的!!! 手册给出的典型参考值为: 256字节-0.4ms,也就是 1M字节/s (实测大概在600K字节/s左右)
*
* 3.如果使用库函数直接读取,那么是否使用DMA、是否开启Cache、编译器的优化等级以及数据存储区的位置(内部 TCM SRAM 或者 AXI SRAM)都会影响读取的速度
*
* 4.如果使用内存映射模式,则读取性能只与QSPI的驱动时钟以及是否开启Cache有关
*
* 5.使用库函数进行直接读取,keil版本5.30,编译器AC6.14,编译等级Oz image size,读取速度为 7M字节/S ,数据放在TCM SRAM 或者 AXI SRAM
* 都是差不多的结果,因为CPU直接访问外设寄存器的效率很低,直接使用HAL库进行读取的话,速度很慢
*
* 6.如果使用MDMA进行读取,可以达到 58M字节/S,使用内存映射模式的话,几乎可以达到驱动时钟的全速,62.14M/s (133MHz时钟下)
*
* 7.W25Q64JV 所允许的最高驱动频率为133MHz,743的QSPI最高驱动频率也是133MHz ,但是对于HAL库函数直接读取而言,驱动时钟超过15M已经不会有性能提升
*
* 8.对于内存映射模式直接读取而言,驱动时钟超过127.5M已经不会有性能提升,因为QSPI内核时钟最高限定为250M,所以建议实际QSPI驱动时钟不要超过125M,
* 具体的时钟配置请参考 SystemClock_Config 函数
*
* 9.实际使用中,当数据比较大时,建议使用64K或者32K擦除,擦除时间比4K擦除块
*
**************************************************************************************************************************************************************************************FANKE*****
***/