mirror of
https://github.com/Bodmer/TFT_eSPI.git
synced 2025-08-15 02:21:18 +02:00
RP2040 DMA image copy bug fix
memcpy should be memmove since areas overlap.
This commit is contained in:
@@ -365,7 +365,7 @@ void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t
|
|||||||
// If image is clipped, copy pixels into a contiguous block
|
// If image is clipped, copy pixels into a contiguous block
|
||||||
if ( (dw != w) || (dh != h) ) {
|
if ( (dw != w) || (dh != h) ) {
|
||||||
for (int32_t yb = 0; yb < dh; yb++) {
|
for (int32_t yb = 0; yb < dh; yb++) {
|
||||||
memcpy((uint8_t*) (buffer + yb * dw), (uint8_t*) (image + dx + w * (yb + dy)), dw << 1);
|
memmove((uint8_t*) (buffer + yb * dw), (uint8_t*) (image + dx + w * (yb + dy)), dw << 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// else, if a buffer pointer has been provided copy whole image to the buffer
|
// else, if a buffer pointer has been provided copy whole image to the buffer
|
||||||
@@ -389,6 +389,8 @@ void TFT_eSPI::pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t
|
|||||||
bool TFT_eSPI::initDMA(bool ctrl_cs)
|
bool TFT_eSPI::initDMA(bool ctrl_cs)
|
||||||
{
|
{
|
||||||
if (DMA_Enabled) return false;
|
if (DMA_Enabled) return false;
|
||||||
|
|
||||||
|
ctrl_cs = ctrl_cs; // stop unused parameter warning
|
||||||
|
|
||||||
dma_tx_channel = dma_claim_unused_channel(true);
|
dma_tx_channel = dma_claim_unused_channel(true);
|
||||||
dma_tx_config = dma_channel_get_default_config(dma_tx_channel);
|
dma_tx_config = dma_channel_get_default_config(dma_tx_channel);
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
#ifndef _TFT_eSPIH_
|
#ifndef _TFT_eSPIH_
|
||||||
#define _TFT_eSPIH_
|
#define _TFT_eSPIH_
|
||||||
|
|
||||||
#define TFT_ESPI_VERSION "2.3.71"
|
#define TFT_ESPI_VERSION "2.3.72"
|
||||||
|
|
||||||
// Bit level feature flags
|
// Bit level feature flags
|
||||||
// Bit 0 set: viewport capability
|
// Bit 0 set: viewport capability
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "TFT_eSPI",
|
"name": "TFT_eSPI",
|
||||||
"version": "2.3.71",
|
"version": "2.3.72",
|
||||||
"keywords": "Arduino, tft, ePaper, display, Pico, RP2040, STM32, ESP8266, NodeMCU, ESP32, M5Stack, ILI9341, ST7735, ILI9163, S6D02A1, ILI9481, ILI9486, ILI9488, ST7789, RM68140, SSD1351, SSD1963, ILI9225, HX8357D",
|
"keywords": "Arduino, tft, ePaper, display, Pico, RP2040, STM32, ESP8266, NodeMCU, ESP32, M5Stack, ILI9341, ST7735, ILI9163, S6D02A1, ILI9481, ILI9486, ILI9488, ST7789, RM68140, SSD1351, SSD1963, ILI9225, HX8357D",
|
||||||
"description": "A TFT and ePaper SPI graphics library with optimisation for Raspberry Pi Pico, ESP8266, ESP32 and STM32",
|
"description": "A TFT and ePaper SPI graphics library with optimisation for Raspberry Pi Pico, ESP8266, ESP32 and STM32",
|
||||||
"repository":
|
"repository":
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
name=TFT_eSPI
|
name=TFT_eSPI
|
||||||
version=2.3.71
|
version=2.3.72
|
||||||
author=Bodmer
|
author=Bodmer
|
||||||
maintainer=Bodmer
|
maintainer=Bodmer
|
||||||
sentence=TFT graphics library for Arduino processors with performance optimisation for RP2040, STM32, ESP8266 and ESP32
|
sentence=TFT graphics library for Arduino processors with performance optimisation for RP2040, STM32, ESP8266 and ESP32
|
||||||
|
Reference in New Issue
Block a user