RP2040 DMA image copy bug fix
memcpy should be memmove since areas overlap.
This commit is contained in:
		
							parent
							
								
									e23d8e083b
								
							
						
					
					
						commit
						9d33b3eac2
					
				|  | @ -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 ( (dw != w) || (dh != h) ) { | ||||
|     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
 | ||||
|  | @ -390,6 +390,8 @@ bool TFT_eSPI::initDMA(bool ctrl_cs) | |||
| { | ||||
|   if (DMA_Enabled) return false; | ||||
|    | ||||
|   ctrl_cs = ctrl_cs; // stop unused parameter warning
 | ||||
| 
 | ||||
|   dma_tx_channel = dma_claim_unused_channel(true); | ||||
|   dma_tx_config = dma_channel_get_default_config(dma_tx_channel); | ||||
|    | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ | |||
| #ifndef _TFT_eSPIH_ | ||||
| #define _TFT_eSPIH_ | ||||
| 
 | ||||
| #define TFT_ESPI_VERSION "2.3.71" | ||||
| #define TFT_ESPI_VERSION "2.3.72" | ||||
| 
 | ||||
| // Bit level feature flags
 | ||||
| // Bit 0 set: viewport capability
 | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| { | ||||
|   "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", | ||||
|   "description": "A TFT and ePaper SPI graphics library with optimisation for Raspberry Pi Pico, ESP8266, ESP32 and STM32", | ||||
|   "repository": | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| name=TFT_eSPI | ||||
| version=2.3.71 | ||||
| version=2.3.72 | ||||
| author=Bodmer | ||||
| maintainer=Bodmer | ||||
| sentence=TFT graphics library for Arduino processors with performance optimisation for RP2040, STM32, ESP8266 and ESP32 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Bodmer
						Bodmer