/****
***********************************************************************************************************************************************************************************
* @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*****
***/