ILI9341: 增加 DMA/纯阻塞 两种传输 + 每次 flush 日志,便于定位错位/残留

- ILI9341_USE_DMA 开关:1=DMA+同步等待,0=纯阻塞SPI(不用DMA),同一入口
- ILI9341_LOG_EN/LOG_EVERY:每次(或每N次)flush 打印 方式/区域/字节/耗时/
  错误码/累计错误/超时/缓冲地址(判断是否落在AXI SRAM)
- DWT 微秒计时;纯阻塞路径无 D-Cache/DMA 一致性问题,用于对照
- README 增加两种模式对照判读表
This commit is contained in:
zhy200308
2026-07-08 11:40:20 +08:00
parent 1273a14bf2
commit fd6c18c4c7
3 changed files with 196 additions and 24 deletions
+19
View File
@@ -27,6 +27,25 @@ extern "C" {
* 不会级联导致长时间白屏。
* ============================================================ */
/* ============================================================
* 诊断/调试开关
* ILI9341_USE_DMA : 1 = 用 DMA 搬运像素(+任务内同步等待)
* 0 = 纯阻塞 SPI(完全不用 DMA,CPU 直推)
* 两种方式共用同一入口 ILI9341_FlushArea_DMA()
* 切换后对比日志即可判断“错位/残留”是否与 DMA 相关。
* ILI9341_LOG_EN : 1 = 每次 flush 打印一行日志(走 UART4 Debug_Printf
* ILI9341_LOG_EVERY: 每多少次 flush 打印一次(1=每次;调大可减轻串口负担)
* ============================================================ */
#ifndef ILI9341_USE_DMA
#define ILI9341_USE_DMA 1
#endif
#ifndef ILI9341_LOG_EN
#define ILI9341_LOG_EN 1
#endif
#ifndef ILI9341_LOG_EVERY
#define ILI9341_LOG_EVERY 1U
#endif
/* 面板原生(未旋转)分辨率 */
#define ILI9341_NATIVE_WIDTH 240U
#define ILI9341_NATIVE_HEIGHT 320U