From 0d897136c9758cec6f22e1c7d2a8cc2eacc65183 Mon Sep 17 00:00:00 2001 From: andrew Date: Fri, 5 Jun 2020 11:10:11 +0100 Subject: [PATCH] Added LV_BLEND_BUF_ATTR as blend_buf MUST be in DMA accessible RAM --- src/lv_draw/lv_draw_blend.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lv_draw/lv_draw_blend.c b/src/lv_draw/lv_draw_blend.c index f87ca5733..ea446c765 100644 --- a/src/lv_draw/lv_draw_blend.c +++ b/src/lv_draw/lv_draw_blend.c @@ -338,7 +338,7 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co else { #if LV_USE_GPU if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) { - static lv_color_t blend_buf[LV_HOR_RES_MAX]; + LV_BLEND_BUF_ATTR static lv_color_t blend_buf[LV_HOR_RES_MAX]; for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full; for(y = draw_area->y1; y <= draw_area->y2; y++) { @@ -352,7 +352,8 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co #if LV_USE_GPU_STM32_DMA2D if(lv_area_get_size(draw_area) >= 240) { - static lv_color_t blend_buf[LV_HOR_RES_MAX] = {0}; + /* blend_buf MUST be in DMA accessible RAM (depending on linker this isn't always the case - CCMRAM) */ + LV_BLEND_BUF_ATTR static lv_color_t blend_buf[LV_HOR_RES_MAX] = {0}; if(blend_buf[0].full != color.full) lv_color_fill(blend_buf, color, LV_HOR_RES_MAX); lv_coord_t line_h = LV_HOR_RES_MAX / draw_area_w;