|
17 | 17 |
|
18 | 18 | #include "Arduino_DataBus.h" |
19 | 19 |
|
20 | | -#if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3) |
| 20 | +//#if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3) |
| 21 | + |
| 22 | +#if defined(ESP32) && (CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32P4) //Modify |
21 | 23 |
|
22 | 24 | #include "esp_lcd_panel_rgb.h" |
23 | 25 | #include "esp_lcd_panel_ops.h" |
24 | 26 |
|
25 | | -#include "esp32s3/rom/cache.h" |
26 | | -// This function is located in ROM (also see esp_rom/${target}/ld/${target}.rom.ld) |
27 | | -extern int Cache_WriteBack_Addr(uint32_t addr, uint32_t size); |
28 | 27 |
|
29 | | -#if (!defined(ESP_ARDUINO_VERSION_MAJOR)) || (ESP_ARDUINO_VERSION_MAJOR < 3) |
| 28 | +//#include "esp32s3/rom/cache.h" |
| 29 | +// This function is located in ROM (also see esp_rom/${target}/ld/${target}.rom.ld) |
| 30 | +//extern int Cache_WriteBack_Addr(uint32_t addr, uint32_t size); |
| 31 | + |
| 32 | +//Modify |
| 33 | +// 根据目标芯片选择不同的头文件 (Select different header files according to the target chip) |
| 34 | +#if defined(CONFIG_IDF_TARGET_ESP32S3) |
| 35 | + #include "esp32s3/rom/cache.h" |
| 36 | +#elif defined(CONFIG_IDF_TARGET_ESP32P4) |
| 37 | + #include "esp32p4/rom/cache.h" |
| 38 | +#else |
| 39 | + #error "Unsupported target chip! Please use ESP32-S3 or ESP32-P4." |
| 40 | +#endif |
| 41 | + |
| 42 | +// 根据芯片类型选择正确的函数签名 (Select different header files according to the target chip) |
| 43 | +#if defined(CONFIG_IDF_TARGET_ESP32P4) |
| 44 | + // ESP32-P4需要使用带gid和map参数的版本 |
| 45 | + extern "C" int Cache_WriteBack_Addr_Gid(uint32_t gid, uint32_t map, uint32_t addr, uint32_t size); |
| 46 | + |
| 47 | + // 创建兼容旧版API的包装函数 |
| 48 | + static inline int Cache_WriteBack_Addr(uint32_t addr, uint32_t size) { |
| 49 | + // 使用默认gid=0,并同时操作L1 DCache和L2 Cache |
| 50 | + return Cache_WriteBack_Addr_Gid(0, CACHE_MAP_L1_DCACHE | CACHE_MAP_L2_CACHE, addr, size); |
| 51 | + } |
| 52 | +#else |
| 53 | + // ESP32-S3及其他芯片使用原始API |
| 54 | + extern "C" int Cache_WriteBack_Addr(uint32_t addr, uint32_t size); |
| 55 | +#endif |
| 56 | + |
| 57 | + |
| 58 | +//#if (!defined(ESP_ARDUINO_VERSION_MAJOR)) || (ESP_ARDUINO_VERSION_MAJOR < 3) |
| 59 | +#if (!defined(ESP_ARDUINO_VERSION_MAJOR)) || (ESP_ARDUINO_VERSION_MAJOR >5) |
30 | 60 | #include "esp_lcd_panel_io.h" |
31 | 61 | #include "esp_lcd_panel_vendor.h" |
32 | 62 | #include "esp_lcd_panel_interface.h" |
|
0 commit comments