Added LV_BLEND_BUF_ATTR as blend_buf MUST be in DMA accessible RAM

This commit is contained in:
andrew
2020-06-05 11:10:11 +01:00
parent 643bc92958
commit 0d897136c9

View File

@@ -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;