From 96a636f0b533ecdb6e936ce3ed2641cc77ffe6ba Mon Sep 17 00:00:00 2001 From: Rbb666 Date: Wed, 22 Feb 2023 18:22:33 +0800 Subject: [PATCH] [Renesas]Add tft-lcd lvgl support --- bsp/renesas/libraries/HAL_Drivers/SConscript | 8 +- bsp/renesas/ra6m3-ek/board/Kconfig | 34 +- bsp/renesas/ra6m3-ek/board/board.h | 2 +- .../ra6m3-ek/board/lvgl/demo/lv_demo.c | 2 +- bsp/renesas/ra6m3-ek/board/lvgl/lv_conf.h | 21 +- .../ra6m3-ek/board/lvgl/lv_port_disp.c | 75 ++-- .../ra6m3-ek/board/lvgl/lv_port_indev.c | 3 +- bsp/renesas/ra6m3-ek/board/ports/SConscript | 26 +- bsp/renesas/ra6m3-ek/board/ports/gpio_cfg.h | 2 +- .../ra6m3-ek/board/ports/ili9341/SConscript | 22 ++ .../board/ports/ili9341/lcd_ili9341.c | 343 ++++++++++++++++++ .../board/ports/ili9341/lcd_ili9341.h | 85 +++++ bsp/renesas/ra6m3-ek/docs/lvgl使用文档.md | 54 ++- bsp/renesas/ra6m3-ek/docs/picture/lvgl/01.png | Bin 22184 -> 17442 bytes bsp/renesas/ra6m3-ek/docs/picture/lvgl/12.png | Bin 0 -> 18017 bytes bsp/renesas/ra6m3-ek/docs/picture/lvgl/13.png | Bin 0 -> 11663 bytes bsp/renesas/ra6m3-ek/docs/picture/lvgl/14.png | Bin 0 -> 12036 bytes bsp/renesas/ra6m3-ek/docs/picture/lvgl/15.png | Bin 0 -> 18576 bytes bsp/renesas/ra6m3-ek/docs/picture/lvgl/16.png | Bin 0 -> 4849 bytes 19 files changed, 590 insertions(+), 87 deletions(-) create mode 100644 bsp/renesas/ra6m3-ek/board/ports/ili9341/SConscript create mode 100644 bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.c create mode 100644 bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.h create mode 100644 bsp/renesas/ra6m3-ek/docs/picture/lvgl/12.png create mode 100644 bsp/renesas/ra6m3-ek/docs/picture/lvgl/13.png create mode 100644 bsp/renesas/ra6m3-ek/docs/picture/lvgl/14.png create mode 100644 bsp/renesas/ra6m3-ek/docs/picture/lvgl/15.png create mode 100644 bsp/renesas/ra6m3-ek/docs/picture/lvgl/16.png diff --git a/bsp/renesas/libraries/HAL_Drivers/SConscript b/bsp/renesas/libraries/HAL_Drivers/SConscript index 2c137fe107..37e7359d95 100644 --- a/bsp/renesas/libraries/HAL_Drivers/SConscript +++ b/bsp/renesas/libraries/HAL_Drivers/SConscript @@ -33,8 +33,12 @@ if GetDepend(['BSP_USING_I2C', 'BSP_USING_HW_I2C']): src += ['drv_i2c.c'] if GetDepend(['BSP_USING_SPI']): - src += ['drv_spi.c'] - src += ['drv_sci_spi.c'] + if GetDepend('BSP_USING_SCI_SPI0') or GetDepend('BSP_USING_SCI_SPI1') \ + or GetDepend('BSP_USING_SCI_SPI2') or GetDepend('BSP_USING_SCI_SPI3') \ + or GetDepend('BSP_USING_SCI_SPI4') or GetDepend('BSP_USING_SCI_SPI9'): \ + src += ['drv_sci_spi.c'] + else: + src += ['drv_spi.c'] if GetDepend(['BSP_USING_ADC']): src += ['drv_adc.c'] diff --git a/bsp/renesas/ra6m3-ek/board/Kconfig b/bsp/renesas/ra6m3-ek/board/Kconfig index e03a9fc004..5bb91bc7f3 100644 --- a/bsp/renesas/ra6m3-ek/board/Kconfig +++ b/bsp/renesas/ra6m3-ek/board/Kconfig @@ -50,6 +50,20 @@ menu "Hardware Drivers Config" endif endif + menuconfig BSP_USING_SPI + bool "Enable SPI BUS" + default n + select RT_USING_SPI + if BSP_USING_SPI + config BSP_USING_SPI0 + bool "Enable SPI0 BUS" + default n + + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + default n + endif + menuconfig BSP_USING_FS bool "Enable File System" select RT_USING_DFS @@ -80,11 +94,27 @@ menu "Hardware Drivers Config" select BSP_USING_GPIO default n - config BSP_USING_LVGL + config BSP_USING_SPI_LCD + bool "Enable SPI LCD" + select BSP_USING_GPIO + select BSP_USING_SPI + select BSP_USING_SPI0 + default n + + menuconfig BSP_USING_LVGL bool "Enable LVGL for LCD" - select BSP_USING_LCD select PKG_USING_LVGL default n + if BSP_USING_LVGL + config BSP_USING_LCD_ILI9431 + bool "Enable LVGL for LCD_ILI9431" + select BSP_USING_SPI_LCD + default n + config BSP_USING_LCD_RGB + bool "Enable LVGL for LCD_RGB565" + select BSP_USING_LCD + default n + endif if BSP_USING_LVGL config BSP_USING_LVGL_DEMO diff --git a/bsp/renesas/ra6m3-ek/board/board.h b/bsp/renesas/ra6m3-ek/board/board.h index 2a72bb1037..afc599a05c 100644 --- a/bsp/renesas/ra6m3-ek/board/board.h +++ b/bsp/renesas/ra6m3-ek/board/board.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2021, RT-Thread Development Team + * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * diff --git a/bsp/renesas/ra6m3-ek/board/lvgl/demo/lv_demo.c b/bsp/renesas/ra6m3-ek/board/lvgl/demo/lv_demo.c index 77bdc0ac47..fd30e46f96 100644 --- a/bsp/renesas/ra6m3-ek/board/lvgl/demo/lv_demo.c +++ b/bsp/renesas/ra6m3-ek/board/lvgl/demo/lv_demo.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2021, RT-Thread Development Team + * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * diff --git a/bsp/renesas/ra6m3-ek/board/lvgl/lv_conf.h b/bsp/renesas/ra6m3-ek/board/lvgl/lv_conf.h index 382e2b3265..d09caf9417 100644 --- a/bsp/renesas/ra6m3-ek/board/lvgl/lv_conf.h +++ b/bsp/renesas/ra6m3-ek/board/lvgl/lv_conf.h @@ -1,16 +1,18 @@ /* - * Copyright (c) 2006-2021, RT-Thread Development Team + * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes - * 2021-10-18 Meco Man First version + * 2023-02-22 Rbb666 First version */ #ifndef LV_CONF_H #define LV_CONF_H +#include + /* Enable additional color format support */ #define DLG_LVGL_CF 1 @@ -20,10 +22,19 @@ #define LV_USE_PERF_MONITOR 1 #define LV_COLOR_DEPTH 16 -#define LV_HOR_RES_MAX 480 -#define LV_VER_RES_MAX 272 -#define DLG_LVGL_USE_GPU_RA6M3 0 +#ifdef BSP_USING_SPI_LCD + #define LV_HOR_RES_MAX 240 + #define LV_VER_RES_MAX 320 + #define LV_COLOR_16_SWAP 1 + #define LV_DPI_DEF 99 +#else + #define LV_HOR_RES_MAX 480 + #define LV_VER_RES_MAX 272 + #define LV_DPI_DEF 89 +#endif + +#define DLG_LVGL_USE_GPU_RA6M3 0 #ifdef PKG_USING_LV_MUSIC_DEMO /* music player demo */ diff --git a/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_disp.c b/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_disp.c index 82adc6ed5b..8863a50c90 100644 --- a/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_disp.c +++ b/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_disp.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2022, RT-Thread Development Team + * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -8,13 +8,18 @@ * 2021-11-24 Rbb666 The first version */ #include -#include "lcd_port.h" #include "hal_data.h" #if DLG_LVGL_USE_GPU_RA6M3 #include "lv_port_gpu.h" #endif +#ifdef BSP_USING_SPI_LCD + #include "lcd_ili9341.h" +#else + #include "lcd_port.h" +#endif + #define COLOR_BUFFER (LV_HOR_RES_MAX * LV_VER_RES_MAX / 4) /*A static or global variable to store the buffers*/ @@ -22,42 +27,13 @@ static lv_disp_draw_buf_t disp_buf; /*Descriptor of a display driver*/ static lv_disp_drv_t disp_drv; +static struct rt_device_graphic_info info; /*Static or global buffer(s). The second buffer is optional*/ // 0x1FFE0000 0x20040000 __attribute__((section(".ARM.__at_0x1FFE0000"))) lv_color_t buf_1[COLOR_BUFFER]; -static uint8_t lvgl_ready_done = RT_EBUSY; - -static rt_device_t device; -static struct rt_device_graphic_info info; -static rt_sem_t trans_done_semphr = RT_NULL; - -void _ra_port_display_callback(display_callback_args_t *p_args) -{ - if (lvgl_ready_done != RT_EOK) - return; - - if (DISPLAY_EVENT_LINE_DETECTION == p_args->event) - { - /* enter interrupt */ - rt_interrupt_enter(); - - lv_disp_flush_ready((lv_disp_drv_t *)&disp_drv); - - rt_sem_release(trans_done_semphr); - - /* exit interrupt */ - rt_interrupt_leave(); - } -} - -// Wait until Vsync is triggered through callback function -void vsync_wait(void) -{ - rt_sem_take(trans_done_semphr, RT_WAITING_FOREVER); -} - +#if !DLG_LVGL_USE_GPU_RA6M3 static void color_to16_maybe(lv_color16_t *dst, lv_color_t *src) { #if (LV_COLOR_DEPTH == 16) @@ -68,9 +44,15 @@ static void color_to16_maybe(lv_color16_t *dst, lv_color_t *src) dst->ch.red = src->ch.red; #endif } +#endif static void disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) { +#ifdef BSP_USING_SPI_LCD + lcd_fill_array_spi(area->x1, area->y1, area->x2, area->y2, color_p); +#elif DLG_LVGL_USE_GPU_RA6M3 + lv_port_gpu_flush(); +#else int x1, x2, y1, y2; x1 = area->x1; @@ -98,10 +80,6 @@ static void disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_ uint32_t y; long int location = 0; -#if DLG_LVGL_USE_GPU_RA6M3 - lv_port_gpu_flush(); -#endif - /* color_p is a buffer pointer; the buffer is provided by LVGL */ lv_color16_t *fbp16 = (lv_color16_t *)info.framebuffer; @@ -116,12 +94,16 @@ static void disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_ color_p += x2 - act_x2; } - - vsync_wait(); +#endif + lv_disp_flush_ready(disp_drv); } void lv_port_disp_init(void) { +#ifdef BSP_USING_SPI_LCD + spi_lcd_init(); +#else + static rt_device_t device; /* LCD Device Init */ device = rt_device_find("lcd"); RT_ASSERT(device != RT_NULL); @@ -133,22 +115,15 @@ void lv_port_disp_init(void) RT_ASSERT(info.bits_per_pixel == 8 || info.bits_per_pixel == 16 || info.bits_per_pixel == 24 || info.bits_per_pixel == 32); - - trans_done_semphr = rt_sem_create("lvgl_sem", 1, RT_IPC_FLAG_PRIO); - if (trans_done_semphr == RT_NULL) - { - rt_kprintf("create transform done semphr failed.\n"); - return; - } - +#endif /*Initialize `disp_buf` with the buffer(s). With only one buffer use NULL instead buf_2 */ lv_disp_draw_buf_init(&disp_buf, buf_1, NULL, COLOR_BUFFER); lv_disp_drv_init(&disp_drv); /*Basic initialization*/ /*Set the resolution of the display*/ - disp_drv.hor_res = LCD_WIDTH; - disp_drv.ver_res = LCD_HEIGHT; + disp_drv.hor_res = LV_HOR_RES_MAX; + disp_drv.ver_res = LV_VER_RES_MAX; /*Set a display buffer*/ disp_drv.draw_buf = &disp_buf; @@ -163,6 +138,4 @@ void lv_port_disp_init(void) /*Finally register the driver*/ lv_disp_drv_register(&disp_drv); - - lvgl_ready_done = RT_EOK; } diff --git a/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_indev.c b/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_indev.c index 817d547aa4..fcfc8e6234 100644 --- a/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_indev.c +++ b/bsp/renesas/ra6m3-ek/board/lvgl/lv_port_indev.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2022, RT-Thread Development Team + * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -12,5 +12,4 @@ void lv_port_indev_init(void) { - static lv_indev_drv_t indev_drv; } diff --git a/bsp/renesas/ra6m3-ek/board/ports/SConscript b/bsp/renesas/ra6m3-ek/board/ports/SConscript index 4871d7248b..3c57bc9c6d 100644 --- a/bsp/renesas/ra6m3-ek/board/ports/SConscript +++ b/bsp/renesas/ra6m3-ek/board/ports/SConscript @@ -1,22 +1,12 @@ - +import os from building import * -import rtconfig -cwd = GetCurrentDir() +objs = [] +cwd = GetCurrentDir() -src = [] +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + objs = objs + SConscript(os.path.join(item, 'SConscript')) -if GetDepend(['BSP_USING_RW007']): - src += Glob('drv_rw007.c') - -CPPPATH = [cwd] -LOCAL_CFLAGS = '' - -if rtconfig.PLATFORM in ['gcc', 'armclang']: - LOCAL_CFLAGS += ' -std=c99' -elif rtconfig.PLATFORM in ['armcc']: - LOCAL_CFLAGS += ' --c99' - -group = DefineGroup('Drivers', src, depend = [], CPPPATH = CPPPATH, LOCAL_CFLAGS = LOCAL_CFLAGS) - -Return('group') +Return('objs') diff --git a/bsp/renesas/ra6m3-ek/board/ports/gpio_cfg.h b/bsp/renesas/ra6m3-ek/board/ports/gpio_cfg.h index 294477ee31..dd5c5d043c 100644 --- a/bsp/renesas/ra6m3-ek/board/ports/gpio_cfg.h +++ b/bsp/renesas/ra6m3-ek/board/ports/gpio_cfg.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2021, RT-Thread Development Team + * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * diff --git a/bsp/renesas/ra6m3-ek/board/ports/ili9341/SConscript b/bsp/renesas/ra6m3-ek/board/ports/ili9341/SConscript new file mode 100644 index 0000000000..93f268ba02 --- /dev/null +++ b/bsp/renesas/ra6m3-ek/board/ports/ili9341/SConscript @@ -0,0 +1,22 @@ + +from building import * +import rtconfig + +cwd = GetCurrentDir() + +src = [] + +if GetDepend(['BSP_USING_SPI_LCD']): + src += Glob('lcd_ili9341.c') + +CPPPATH = [cwd] +LOCAL_CFLAGS = '' + +if rtconfig.PLATFORM in ['gcc', 'armclang']: + LOCAL_CFLAGS += ' -std=c99' +elif rtconfig.PLATFORM in ['armcc']: + LOCAL_CFLAGS += ' --c99' + +group = DefineGroup('ili9341', src, depend = [], CPPPATH = CPPPATH, LOCAL_CFLAGS = LOCAL_CFLAGS) + +Return('group') diff --git a/bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.c b/bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.c new file mode 100644 index 0000000000..96b7630f75 --- /dev/null +++ b/bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.c @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2023-02-23 Rbb666 First version + */ +#include + +#ifdef BSP_USING_SPI_LCD +#include "lcd_ili9341.h" +#include "drivers/spi.h" + +/* 2.8 inch LCD module */ +/* res pin -> P4_14 */ +/* d/c pin -> P4_13 */ +/* cs pin -> P4_05 */ +/* sda pin -> p4_11 */ +/* scl pin -> p4_12 */ + +_lcd_dev lcddev; +static struct rt_spi_device *lcd_dev; + +static void rt_hw_spi_device_attach(const char *bus_name, const char *device_name, void *cs_Pin) +{ + struct rt_spi_device *spi_device; + RT_ASSERT(device_name != NULL && bus_name != NULL); + spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device)); + RT_ASSERT(spi_device != RT_NULL); + rt_err_t err = rt_spi_bus_attach_device(spi_device, device_name, bus_name, cs_Pin); + if (RT_EOK != err) + { + rt_kprintf("%s attach failed.", bus_name); + } +} + +rt_err_t spi_lcd_init(void) +{ + rt_err_t res = RT_EOK; + + rt_hw_spi_device_attach("spi0", "spi30", (void *)LCD_CS_PIN); + lcd_dev = (struct rt_spi_device *)rt_device_find("spi30"); + if (lcd_dev != RT_NULL) + { + struct rt_spi_configuration spi_config; + spi_config.data_width = 8; + spi_config.max_hz = 20 * 1000 * 1000; + spi_config.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB; + rt_spi_configure(lcd_dev, &spi_config); + } + else + { + res = RT_ERROR; + } + + LCD_Init(); + + return res; +} +MSH_CMD_EXPORT(spi_lcd_init, lcd_spi_init); + +void LCD_RESET(void) +{ + LCD_RES_CLR; + DELAY(100); + LCD_RES_SET; + DELAY(100); +} + +void LCD_WR_REG(uint8_t reg) +{ + LCD_DC_CLR; + rt_spi_send(lcd_dev, ®, 1); + LCD_DC_SET; +} + +void LCD_WR_DATA(uint8_t data) +{ + LCD_DC_SET; + rt_spi_send(lcd_dev, &data, 1); +} + +void LCD_ReadData(uint8_t *data, uint16_t length) +{ + LCD_DC_SET; + rt_spi_transfer(lcd_dev, RT_NULL, &data, length); +} + +void LCD_WriteReg(uint8_t reg, uint16_t regdata) +{ + LCD_WR_REG(reg); + LCD_WR_DATA(regdata); +} + +void LCD_WriteRAM_Prepare(void) +{ + LCD_WR_REG(lcddev.wramcmd); +} + +void LCD_WriteData_16Bit(uint16_t Data) +{ + uint8_t buf[2]; + LCD_DC_SET; + buf[0] = Data >> 8; + buf[1] = Data & 0xff; + rt_spi_send(lcd_dev, buf, 2); +} + +void LCD_direction(uint8_t direction) +{ + lcddev.setxcmd = 0x2A; + lcddev.setycmd = 0x2B; + lcddev.wramcmd = 0x2C; + switch (direction) + { + case 0: + lcddev.width = LCD_W; + lcddev.height = LCD_H; + LCD_WriteReg(0x36, (1 << 3) | (0 << 6) | (0 << 7)); /* BGR==1,MY==0,MX==0,MV==0 */ + break; + case 1: + lcddev.width = LCD_H; + lcddev.height = LCD_W; + LCD_WriteReg(0x36, (1 << 3) | (0 << 7) | (1 << 6) | (1 << 5)); /* BGR==1,MY==1,MX==0,MV==1 */ + break; + case 2: + lcddev.width = LCD_W; + lcddev.height = LCD_H; + LCD_WriteReg(0x36, (1 << 3) | (1 << 6) | (1 << 7)); /* BGR==1,MY==0,MX==0,MV==0 */ + break; + case 3: + lcddev.width = LCD_H; + lcddev.height = LCD_W; + LCD_WriteReg(0x36, (1 << 3) | (1 << 7) | (1 << 5)); /* BGR==1,MY==1,MX==0,MV==1 */ + break; + default: + break; + } +} + +void LCD_SetWindows(uint16_t xStar, uint16_t yStar, uint16_t xEnd, uint16_t yEnd) +{ + LCD_WR_REG(lcddev.setxcmd); + LCD_WR_DATA(xStar >> 8); + LCD_WR_DATA(0x00FF & xStar); + LCD_WR_DATA(xEnd >> 8); + LCD_WR_DATA(0x00FF & xEnd); + + LCD_WR_REG(lcddev.setycmd); + LCD_WR_DATA(yStar >> 8); + LCD_WR_DATA(0x00FF & yStar); + LCD_WR_DATA(yEnd >> 8); + LCD_WR_DATA(0x00FF & yEnd); + + LCD_WriteRAM_Prepare(); +} + +void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos) +{ + LCD_SetWindows(Xpos, Ypos, Xpos, Ypos); +} + +void LCD_Clear(uint16_t Color) +{ + unsigned int i, m; + uint8_t buf[80]; + + for (i = 0; i < 40; i++) + { + buf[2 * i] = Color >> 8; + buf[2 * i + 1] = Color & 0xff; + } + + LCD_SetWindows(0, 0, lcddev.width - 1, lcddev.height - 1); + + LCD_DC_SET; + for (i = 0; i < lcddev.height; i++) + { + for (m = 0; m < lcddev.width;) + { + m += 40; + rt_spi_send(lcd_dev, buf, 80); + } + } +} + +void LCD_Fill(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint16_t color) +{ + uint16_t i, j; + LCD_SetWindows(xsta, ysta, xend - 1, yend - 1); + for (i = ysta; i < yend; i++) + { + for (j = xsta; j < xend; j++) + { + LCD_WriteData_16Bit(color); + } + } +} + +void lcd_fill_array_spi(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend, void *Image) +{ + rt_uint32_t size = 0; + + size = (Xend - Xstart + 1) * (Yend - Ystart + 1) * 2;/*16bit*/ + LCD_SetWindows(Xstart, Ystart, Xend, Yend); + LCD_DC_SET; + + rt_spi_send(lcd_dev, Image, size); +} + +static void _ili9341_init(void) +{ + LCD_WR_REG(0xCF); + LCD_WR_DATA(0x00); + LCD_WR_DATA(0X83); + LCD_WR_DATA(0X30); + + LCD_WR_REG(0xED); + LCD_WR_DATA(0x64); + LCD_WR_DATA(0x03); + LCD_WR_DATA(0X12); + LCD_WR_DATA(0X81); + + LCD_WR_REG(0xE8); + LCD_WR_DATA(0x85); + LCD_WR_DATA(0x00); + LCD_WR_DATA(0x79); + + LCD_WR_REG(0xCB); + LCD_WR_DATA(0x39); + LCD_WR_DATA(0x2C); + LCD_WR_DATA(0x00); + LCD_WR_DATA(0x34); + LCD_WR_DATA(0x02); + + LCD_WR_REG(0xF7); + LCD_WR_DATA(0x20); + + LCD_WR_REG(0xEA); + LCD_WR_DATA(0x00); + LCD_WR_DATA(0x00); + + LCD_WR_REG(0xC0); /* Power control */ + LCD_WR_DATA(0x26); /* VRH[5:0] */ + + LCD_WR_REG(0xC1); /* Power control */ + LCD_WR_DATA(0x11); /* SAP[2:0];BT[3:0] */ + + LCD_WR_REG(0xC5); /* VCM control */ + LCD_WR_DATA(0x35); + LCD_WR_DATA(0x3E); + + LCD_WR_REG(0xC7); /* VCM control2 */ + LCD_WR_DATA(0XBE); + + LCD_WR_REG(0x36); /* Memory Access Control */ + LCD_WR_DATA(0x28); + + LCD_WR_REG(0x3A); + LCD_WR_DATA(0x55); + + LCD_WR_REG(0xB1); + LCD_WR_DATA(0x00); + LCD_WR_DATA(0x1B); + + LCD_WR_REG(0xB6); /* Display Function Control */ + LCD_WR_DATA(0x0A); + LCD_WR_DATA(0xA2); + + LCD_WR_REG(0xF2); /* 3Gamma Function Disable */ + LCD_WR_DATA(0x08); + + LCD_WR_REG(0x26); /* Gamma curve selected */ + LCD_WR_DATA(0x01); + + LCD_WR_REG(0xE0); /* set Gamma */ + LCD_WR_DATA(0X1F); + LCD_WR_DATA(0X1A); + LCD_WR_DATA(0X18); + LCD_WR_DATA(0X0A); + LCD_WR_DATA(0X0F); + LCD_WR_DATA(0X06); + LCD_WR_DATA(0X45); + LCD_WR_DATA(0X87); + LCD_WR_DATA(0X32); + LCD_WR_DATA(0X0A); + LCD_WR_DATA(0X07); + LCD_WR_DATA(0X02); + LCD_WR_DATA(0X07); + LCD_WR_DATA(0X05); + LCD_WR_DATA(0X00); + + LCD_WR_REG(0xE1); /* set Gamma */ + LCD_WR_DATA(0X00); + LCD_WR_DATA(0X25); + LCD_WR_DATA(0X27); + LCD_WR_DATA(0X05); + LCD_WR_DATA(0X10); + LCD_WR_DATA(0X09); + LCD_WR_DATA(0X3A); + LCD_WR_DATA(0X78); + LCD_WR_DATA(0X4D); + LCD_WR_DATA(0X05); + LCD_WR_DATA(0X18); + LCD_WR_DATA(0X0D); + LCD_WR_DATA(0X38); + LCD_WR_DATA(0X3A); + LCD_WR_DATA(0X2F); + + LCD_WR_REG(0x29); +} + +void LCD_Init(void) +{ + LCD_RESET(); /* LCD Hardware Reset */ + LCD_WR_REG(0x11); /* Sleep out */ + DELAY(120); /* Delay 120ms */ + _ili9341_init(); + + LCD_direction(USE_HORIZONTAL); +} + +static uint16_t color_array[] = +{ + WHITE, BLACK, BLUE, BRED, + GRED, GBLUE, RED, YELLOW +}; + +static rt_err_t lcd_spi_test() +{ + uint8_t index = 0; + for (index = 0; index < sizeof(color_array) / sizeof(color_array[0]); index++) + { + LCD_Clear(color_array[index]); + DELAY(200); + } + + return RT_EOK; +} +MSH_CMD_EXPORT(lcd_spi_test, lcd_spi_test); +#endif diff --git a/bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.h b/bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.h new file mode 100644 index 0000000000..009dd83424 --- /dev/null +++ b/bsp/renesas/ra6m3-ek/board/ports/ili9341/lcd_ili9341.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2023-02-23 Rbb666 First version + */ +#ifndef __LCD_ILI9341_H__ +#define __LCD_ILI9341_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif +#include "hal_data.h" +#include +#include + +typedef struct +{ + uint16_t width; /* LCD width */ + uint16_t height; /* LCD high */ + uint32_t id; /* LCD ID */ + uint8_t dir; /* 0:Vertical | 1:Vertical */ + uint16_t wramcmd; /* gram cmd */ + uint16_t setxcmd; /* set x cmd */ + uint16_t setycmd; /* set y cmd */ +} _lcd_dev; + +/* LCD param */ +extern _lcd_dev lcddev; + +#define USE_HORIZONTAL 0 /* 0-0째|1-90째|2-180째|-270째 */ + +/* lcd size */ +#define LCD_W 240 +#define LCD_H 320 + +#define WHITE 0xFFFF +#define BLACK 0x0000 +#define BLUE 0x001F +#define BRED 0XF81F +#define GRED 0XFFE0 +#define GBLUE 0X07FF +#define RED 0xF800 +#define MAGENTA 0xF81F +#define GREEN 0x07E0 +#define CYAN 0x7FFF +#define YELLOW 0xFFE0 +#define BROWN 0XBC40 +#define BRRED 0XFC07 +#define GRAY 0X8430 + +#define LCD_DC_PIN BSP_IO_PORT_04_PIN_13 +#define LCD_RES_PIN BSP_IO_PORT_04_PIN_14 +#define LCD_CS_PIN BSP_IO_PORT_04_PIN_05 + +#define LCD_DC_CLR rt_pin_write(LCD_DC_PIN, PIN_LOW) +#define LCD_DC_SET rt_pin_write(LCD_DC_PIN, PIN_HIGH) +#define LCD_RES_CLR rt_pin_write(LCD_RES_PIN, PIN_LOW) +#define LCD_RES_SET rt_pin_write(LCD_RES_PIN, PIN_HIGH) +#define DELAY rt_thread_mdelay + +void LCD_RESET(void); +void LCD_WR_REG(uint8_t reg); +void LCD_WR_DATA(uint8_t data); +void LCD_WriteReg(uint8_t reg, uint16_t regdata); +void LCD_WriteRAM_Prepare(void); +void LCD_WriteData_16Bit(uint16_t Data); +void LCD_direction(uint8_t direction); +void LCD_SetWindows(uint16_t xStar, uint16_t yStar, uint16_t xEnd, uint16_t yEnd); +void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos); +void LCD_Clear(uint16_t Color); +void LCD_Fill(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint16_t color); +void lcd_fill_array_spi(uint16_t x_start, uint16_t y_start, uint16_t x_end, uint16_t y_end, void *pcolor); + +void LCD_Init(void); +rt_err_t spi_lcd_init(void); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/bsp/renesas/ra6m3-ek/docs/lvgl使用文档.md b/bsp/renesas/ra6m3-ek/docs/lvgl使用文档.md index c4f51cceeb..e7b12a390c 100644 --- a/bsp/renesas/ra6m3-ek/docs/lvgl使用文档.md +++ b/bsp/renesas/ra6m3-ek/docs/lvgl使用文档.md @@ -6,9 +6,11 @@ ![](picture/lvgl/00.png) -在 `Hardware Drivers Config → On-chip Peripheral Drivers` 中使能 `Enable LVGL for LCD` 选项 +## RGB 屏使用配置 -![](picture/lvgl/01.png) +在 `Hardware Drivers Config → On-chip Peripheral Drivers → Enable LVGL for LCD` 中使能 `Enable LVGL for LCD_RGB565` 选项 + +![](picture/lvgl/12.png) 接下来退出菜单界面,输入 `pkgs --update` 命令手动联网获取 lvgl 的软件包到 `packages` 文件夹下 @@ -18,7 +20,7 @@ ![](picture/lvgl/03.png) -## fsp 中配置 lcd 外设 +### fsp 中配置 GLCDC 外设 点击 mdk 中的 `Tools->RA Smart Configurator` 进入 rasc 配置软件 @@ -48,6 +50,50 @@ ![](picture/lvgl/10.png) -退出 rasc 后,在 mdk 中进行编译,下载即可 +### 编译烧录 + +退出 rasc 后,在 mdk 中进行编译,仿真下载即可 + +![](picture/lvgl/11.png) + +## SPI(ILI9431) 屏使用配置 + +在 `Hardware Drivers Config → On-chip Peripheral Drivers → Enable LVGL for LCD` 中使能 `Enable LVGL for LCD_ILI9431` 选项 + +![](picture/lvgl/01.png) + +接下来退出菜单界面,输入 `pkgs --update` 命令手动联网获取 lvgl 的软件包到 `packages` 文件夹下 + +![](picture/lvgl/02.png) + +接着在env 终端中输入 `scons --target=mdk5` 生成 mdk 工程 + +![](picture/lvgl/03.png) + +### fsp 中配置 SPI 外设 + +点击 mdk 中的 `Tools->RA Smart Configurator` 进入 rasc 配置软件 + +![](picture/lvgl/04.png) + +点击 New Stack,选择 `Connectivity->SPI(r_spi)`,使能 SPI 外设 + +![](picture/lvgl/13.png) + +在 `Callback` 中,设置中断回调函数,(默认使用SPI0)输入 :`spi0_callback` + +![](picture/lvgl/14.png) + +接着我们配置 SPI 的引脚属性(默认使用SPI0),进入 Pins 界面按照下图进行配置: + +![](picture/lvgl/15.png) + +完成以上配置后,点击 `Generate Project Content` 生成配置相关代码 + +![](picture/lvgl/16.png) + +### 编译烧录 + +退出 rasc 后,在 mdk 中进行编译,仿真下载即可 ![](picture/lvgl/11.png) \ No newline at end of file diff --git a/bsp/renesas/ra6m3-ek/docs/picture/lvgl/01.png b/bsp/renesas/ra6m3-ek/docs/picture/lvgl/01.png index 35c7064e3df714b659eb55c8c6ae33c99b28b6a3..5d3c673ff00e6581aec36ae04f031076d4133c46 100644 GIT binary patch literal 17442 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 wMoW;yjTVu4FmOxhc7?;Z=E|vQ~&?~ literal 22184 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 diff --git a/bsp/renesas/ra6m3-ek/docs/picture/lvgl/12.png b/bsp/renesas/ra6m3-ek/docs/picture/lvgl/12.png new file mode 100644 index 0000000000000000000000000000000000000000..157ba26fa9df83f05173d9e51de3b43f62b31b16 GIT binary patch literal 18017 zcmdqJby$>N_dYs^fYP9}v~-uG4ALPWqI4r5B3)85NH<7J4GoHfbO=MIG)Oa2(%np* z!O#1B-{1E-?{&^~oj=e110J61nLYd2d+oLEb+3C9`9e#D2%i=o000oFsVcq%0Pd_{ zu7BUd#r!M}Ze#!em;h>u&t84V+RrwPc%+}Y8SiU%92B}fKIZtWnA-1gM?QHeoULps zC*0{$-te?KsjjGAFx6rU#4BdR9D@)1fD}|E3@v#(UC@V}X#cpZbg`tKpneG{=%l|P z`=M6V_F2&o8QN`2`R*`-@FTq)FQ&cf_g1FI`sdn<_TP7ZGR8{XiF_ohT$wX__~`v)_9ZZH zA$~Clz8wygP{w0eDu`c(<@d2hSs`aNRm{PW7w;=34-ey{_%pCMZ0&c(InKuaT$C1& zzsVn(Y3yUfd_nsAcf6g3idAyHN0tHIh4e;uwf99p&3@5N{#P&1^rRqmlI=_A4<(X` zpiw_`V*+PFw1vq~T5&x#-RA!~X{L1te!T<8(G9JsX#5`ZWI5PCInf1rDsrIA%Rz}LVbLI$ z-L9RewIXa72Zw~z)dLYp8g&G2Fov^PU0CBs?Dxv17(q8(u_Y~WZCs(K!gkdH2gk4OOj4o;slT@V5yO< zso-%R(ER4scyg)3NLLoQv=8;^0}8h!{1b{VzDJx$?Kw6hcm1aPvwJAKPb$RrKXMq= zZ+9#?w%Ik@EKradZB3F=HX=QKSA`tji&7!^a=FDsU`Y>p9if_d4jmK#$C6gok{|4&ggoB@$Ctw6*nBg6y+!Wb>ucU_;dujz zn>oOVgI%mF@xCbw0MW)vI?Ci-zKxc>DT2R0PFX%Qj%al_VC#-geu+> zk%+C%93Zb+J_JXKK=EXeW_9UF*y=9OrD^3%>gQfY49Hf6XG~YS_1% z_A=Vg_xxNTkJw0Cn+G~u3O@i1tZITyN?e!p4_=>Irfm{`*AmYHvzk6#KX}@F+W$O0 zqhOKe>?A<#g9vlha^JA`8Vn-APZxBrpOInY1i@ElrB>xHSys>wv3}WhvFE<(ePz&& zx0E`2CN^^T^arrz1B2(^6_yj43jh3$?V+z)f81p5AGwg*1qT3L2>r)jLKi&Of#?Pu6&8UVg(l#2V*L%;c}nL?0`gt? zCL_bLQY-pAA}3Bt%2Uy+&L0W)@VH5sPq3X?!aJLWHgkLejrU8f0gDyTzVQr?D=vf& zw#DBg94AX;-e7-&A_P=CnwBr|nrpqIcDOufM9GW&*n}=mU=}N{4;PKSj9) z1(hi&BI|W^>~+#&LzGpS=+A6rdMdt`dm~@bp%?jt7rE~_HlA)V1e~E#p~DD8)>Zym zy2^%eQqscK#_wNxW-$&_PBIrcF#LN*b-LKH0@3hnu>XvaW&Y6;zt|yhTUp`26f4@B zLflz@`30PT4n(Ou+qTdRtN<$@v6-W&R@(1at4Y_56Nnom*RiNmuW>#1z}8$8ESDy# zso_J0Ru_w3xh zHrd|um0C@b1E%=Q3P>O}pIj4&-|s|y zzCZ+~FeBcVeU4baveQQM?!GxJ;Ud=UJmrHecx2LXo@NA!i6#I~_WlzeK7hK5rT8Pa zsm}d5;(CmCS#Q1GR*nux((%ePvl6I{Cy_()9tJ#@d=~vPw^VSFi5lc~L-7zu0zwam zi+XkjfG=sf(qLArj1bw-nMz?hc`p;V?vp1QeeB?*!8FZB_&X4JnYLTM_ounhc?g!Z zC&&oANt8{rrcBWdFDe&ZqjQ20Fy#ek9{}GE>NC8*5f6^I!Ska0!h)DK|M?Z|jBsnM z3O~q}?T?+3T5?f|T(o!u0a24;ea%bjT}va$R)(k~dV4BKxdhRr-^PGuOP!R#ro({( z$N3g*ZaqY4_3Wl}>frYNib}OP`eRo>&YETpqs7GOgA&%JPyU#X<#w6mEotdatQ|b9 z48j<~_O)M0JkA90!GwiI3HieBZLRmCwux*X#5G$%FAQm&WZa~(>_NabSqUQbMQUmJ z$*qWqVs{eNo2D5ajh<(|Co3*@WE_w>KIi9Y9mJo9&K^j;UAITTjq?=8ow{C%^nZMC zyi%eao_XxfYt7Nd`~2QIA5^Iu6Oc}3D$g#yyzqJne~=%8;wuNuuUDG4RnI^=;T%c- z#1=7$rhL@LY=y7)yy-aX zzwOa|MS?btj(FOw8IG?*mp-rJ6WGzTHs`Cwwn2)Xo;1+f_i2a9+IGlm_5C*P@t({H z;C<7^|NHvg&ai)*^_NUy?Qt8q$Zwkp(4MEj*l-WKQ>NBVBG#qp*olu_ir%38-Wg$( z{V4Fg5j%k*ZwFig^gY#L7+d=x-svdCy)JNgm3h$&c0-4kbawJb(?^E8qYR)p?k=oG z|D%=zAyA|r+QX|XKK*faA}&Q&IAa?Gy}Vkx9;eHzKeroxflR)Vb%`V3f=aGotn7Nt zZd#UNfY=EfwhOC`@bjDp5*xov+KJah5hp_*)E^qlqaQNuC6aq6-TzH3nB3ExJC`+e zu~d!jUyyyM{t6l0K`$CKU?~^EVN)HTa4zU3HPQ7gi$Cwvnzd6q64&Q8QubKm(7gUi z><*>)iP}i7<#X<5D~c& zMXtQDkb25&Z5glKmyhQB5zw!oh>R|nrJ;L)hpYJE6}w#>`Qt94yW(=|np6~sl!h4Y z%ct6Y#O@^nM5EaOcun80u+jT^KUs3jzmeo;bUuKrv}#rP5`2; zuA7eY5JhR+HK-~@Pfk4S$!Y8m9PNCx`S_8AW_N|hBZRhU4Q=LnIdBjkB=JT}FZQe+ z`KoB)T1oir>&lQA?6NnE!(>+gyC`tZRm!5Qa#hki5?{yY4|BpvGEsbrE9WFJ6kjsWlc(i;QX2!pw;EU0Qlc`N$N8~?L@ib}@}~|L zOC!%u1`3uuEHZdjW)?oiSzK*uU>BD36RcFBB-T5^m7Zky4!VrWK7IY6Z!aq<4$8Xo z&GI9sc`Xmr;ZS9B*Y#T0Up+hC_=o#oz^a*8{*b%3k^Y7mYUBHfT?Oz2CF3IF)P^=! zEis*f?^csNM+>_ysy!dlWxyAJ+P{ebKRc#t4j3HNasbP};%N`qJDtJ25+9Owa>~;Toc)ohflh9ngR-H8NfrR!q-H$G{u3hV$aMRG)M>v zNg$hk+3>?uNLB+z9@L z3jM~*3vMm^9!+_1Uw|JhcDy0Lhm78Wqz63eGkZI0*%s;p z`h!!C!b|p0UChj=0c2)E3F@Po_5Yw8Kq=9n`Ke*EwbtfWSWbx&#N3Gd$CP690I-2Mgt zO4EO)9u14frIL~SbHj`9=sw=x%Umm_&VS%fDYbw4eat=1oIEIeofJ9QA$>L@1YcT& zdPkTo_$o8*f#o0!L)BD!caM(%^w5oiR(LW9H9?8|)*Vm;NLT#ZQ4A3yEF)iB0Z!if z;cYa?^T?iU6ny-fGQf9?Yz^lStANzi?~n_*Q&hRt(|-S{+|@9u!#hRP$GZXTXOT-v z+5dgT&XS~c;0|KL`ZzdcqAC)+2w*;HDIToGmZOev!3@y4XXK%l_Vxx+dwVI|ZyWVY zH}D`2CgZOT^ijJ74>EbsoTdDHdzgt4WR9r20+10@fLGB#Jt$57P|F|E*4_QP zXaO?4>8EFZd>4^VTm?G?#%wlvHX&ot#(rCC`;~-47iKpf#0jh6uu)ejsw(z zYiFFv`*sE)eU`=aM1_?Ob!Z2v--f%J;1p5nW zFkrtRyb^o>0JPsdCTxWdTyBk;H7h_yoW4ugSb81O9PT0gVAh}bH?vO9OnoOM1pNJn zTFtxjyjrU^){J@Ey@5wvFx&4m_~5r*z+%WAC=7I3#JJpNevn6X3Dje`ltl+XaIS~g zu5F`JuCH#A*Cv>){01c`&zQDQdF669ZItRzxbf=XX-e}S{qUTLzATR8d|7N^rj=)t z+ST`Nmb4}JKfKThb07n7t=ETCR#sB|H7@C_xjDnKUBzyC*hzd>>Qq{Mlk8X=LEnYQ zj`K=SFv*tPa!T-K@Z~9N6v*7%vwAT5fI#C*V_3w-Vx2#*2tx1Q85~$eFi;g@`ZB13 z6Dzr_$GfgEw)VoV?>u~_ZCX@9;poUOD;0staR@iaLx+M+)i{xlWk>b`>kk};d@T=z z4QG+y*HZI+TRlu~|P}yWd#& zp00w^vU}R^xY}L>$EAfSo@|hiFn*45H{zq*I%r>OIL-2<3 z_u~WdKk6)M757%r@0oc6s&5kP6q^eD^_vQRH1bt&8k;Se`KQ9{rPoEw#1@##yz zI!gUlYkgGDs*5zD+*X*|NQQWV$N-RAvzEqZ(+k}{9M3dX(>t)+Iy~6FZ{(Ep;*Mk{ ziH}#U#vn2rZ%QQ{=(C(oHjAb}`d^Bi9h3+8f2---J`?^dd!=% zD)rd1v_(pN>YU`fFHeB6OXahLXgfJE0ATU$9z0~Br9>tV!sx4Bxs>rzcKG19g<0dO zZ~59~HZMhc3qYSHHq=V-B4=XMY&9Z)g;9|B0Wf_3aKd31cK$D?*5UyHlYm0FMxhD< zZiuc+yZhh|XT0s1yUHll`G>6tb9uz{C6=g7BFcI7|)VUANJm>n`{CPqn%WQ@f@|M2RH6{rJhF`M^$X4 z2q$`jb>8OlSM}AKs3R1&X_hJ(UQ}+&%LBQRy`yI`i5EHj9w?jPXtfcjvR`C{X{%P+ z!tg|n(7-kxzWmKr3d1npPhIONS1#&gboNie;W|H$B9?taW3uH#C(^pn@kjCM%`aB0 z`w6pc@?7>O*2TthRl9dwK1$_D9pGzTntu)w5wSupxKh3q6ngj)DS*)br#d5M9eo3PF(ixlC#uoYsH-2CgeV!n-Y?YvQ=mYuQJCSEZe z?WxBcS@c0`hn9J9ApeU>$1uxiI4@bzW~og`!yo+kUy{xBf@_Lqw5q}tu{V4kV5U9M z^<|so(1Uy&GGG$6=6EXt0f8t2=mEHcp8-wN`1nzo?_8 zmFpTA#mV?(U&SHkPdD3}@t;Y&h10M{8+{k31kxlemH8ie69T&MBrmArb<7uVT`ACK zvgD0hntAciw#KPY@Y)sX^-{(>u;kMOnEelUmqd0QMK(6cS?)L3|U zUJ3rpB3p$jQAwvu*QDF(>}D;C)5A)dpeuDd_9r0jRtd+YD=r?}h4QRm?ZXO}4KJQH z)^1t?jT|Mm?Q5sm@nE*-GtCZme`L(n+0dy!eLMGgq3%vjJ`c~+=|IPvmEJ%)DYb&L zqomUYN(mN0lO5{wUk_F?1-vY%d&vAd39g@3i;_N``?4V|i4MM|;{|@% zfaQa=us6WZ-~Jr)Sd(X}9Lh~S;9QNG&=1Y_$U9VNEbQ+e;qoAAEAEi5a&|XUK4Lj) zz0*UKcvX8WVl&0Tvem^3!O{0%0}hf?wy}%Dt7ma{Xk5qsUpP zyTlx8bhBD|^VN;ApX^lQLMS8|TA&GF@xm! z3=g;n#U&8a8#p!^X`M|hs;;a_++A5YIk229M`HUc`P`!S^Z8ph2D)QyACTMP59}`&p*cq<-0bVrk zJ``6Sbdv-};?6_IJV48**l&2CPBc+$U%;LM1FxWjgM&bokOdEGd!+jgk`vA4%G-pn zD`o8QRaVpml2s_upgDLRr$fbYO<#tAl}kH67g(@$UK{d0?2cFWFKgx{hf@-1Ff}{& zZ92Msrp2bon&70JWD?GQUpGQz!lD=Bup@x9Tu|axuYF%y88qOMN8`dHw8~-6rt5lP zzeZ^LMja9Jz{GE$YS2&yn4$yEO+g}bpymu`uRa*_IeMvUXX>F?dI}*KxRhlR(?vfm z*=Arrjy0OiNrF!2y-w09Z`)@J1db1I3YBabTf2#BRvqTTh-n+~z z7cX>6ExbK@Ta#3m;E+t}?07e=S%>0-!nI3JK}ke2{dHpp#3-ueNoHmYy;;YuN&xeo zmX2#q>6ga$1&ehRHE!yigH!{f-pZvqx@UUZnOg6!zKBzvBC5MCi)WjM#x-11S`|yL zg56pV(rOV5pss>j&N>?GMN*? z=0d`72Ashy-lL70m9Agw^3A_e1fb_ry5_Qv-jj%%vbMc;KUwMeOk{UX^8GG98K2n^ zZ%1c)a;&H=&#Ep%g~^IQeAn@4^o38$*0AE%THOn^q_ekKhQ(q&URH=l(G76s;uC#o zF+uu2Q0V^Y=(vgggy(DY?|>D@&uv`Y;Sgn^Q2_z}{eq^Ztz_^>e2qUWMTZyrEAE2k z`MzRF-NPdtJ=qodwTaG?%0R?Q+$KH|d_~6ysTpmqj;#IwJQp{8k*zxA6YwYv=^rq;!x#&eu4sN^MCD!Gc2GBV&g504IyO5u5>4_9%3CJ*q-KKMO43wIDbYr#wU zlD)-i7<%cLO7{dNK`UWqZeB7sHz&`EbN6$vVbPzWq5-4u*VoqPZ=Kpz9D<8E_D!(> z7A)gd4mGbQ8t95X*)>@v-QS0NRGG)OSJDA`Kg=B)x*FCt!-+p4nVJO6$@=49atQ8P zrDUn0Iepv=0DC;EldCUO7 zp4^mh@KdSQYV~sZYLS!f%h5p9fXT5pnlCj!he`hnD^Xy3Kl}@V0Nl7NkN#c-Mt!`^ zTre%y>K$jN&3)$0wQ%w-0qbDW1e{h+C;QBfshpE#^YZU}mP61xPwKW(Yx9UBaIeM9 z-e|(|PsKBY-kMKW3}{JZHC3_d8)8{l>8pHs7u$F9J?{zdevIWe@r=1`2|6Ot&h4Vf zTJza3=?xY-0TYMa5!9;I?(9^?DX+{=VS(&`61B9xH#m6fFz!z}Gl>0Z4r`nu`fMnJ z?~L-?vJA|3X*?G#o?eB58RzxpHVz-1B#D6@@N{}hf!2ycH?~unUn{nHBDaLZOUbPK97BWv>{F5R((`E2t?vwhAO8SPU4OjPkY(&I=&wqPG$6dBfWP` z0;c>E?eW5GJ?%~7R~hR+q1~4ab?YqX)zeBLg~F$tVurxp4ZO5fZ_Z{aMaDbqd7MARx8>v9#6ff3yHUgo3Tl zMNV^no{&8pSa+Vcz1MoS*;k@nj{>sgu${+yS|lT(6kPj$CoM%Xz&d2zTXXyvb0Xl+ zsahEwHX^sAn}Cv4ubvxyRFRQU?_iuK;_A!&+VPLif9(W;>dBXv z&oxne$t$1NbSdXAwG`EIzj1!gU0eM9QK_rud0{J5VIIEWkDf*7A17fYJOF;rIQB$c zdrXDvXtBk7lOvj|NHw_PmtGb373HNka%<_^D7}i0T7^OAdg9hMo80Q3QxaG*p}QWw zl08ur;zK`t$*)(J5N+9rsQCasSmZA|srh>HwT`r!oEdF(I?A^>!G7LUun^f2*CaEj`a*M)NM4)4Q<(H$m%kA7oEPxzWiQQH?}dx|gC4=nz4>=2%D# z{>Av{VVJy)L_KmO@F!=Kk|gO_=}@>PvRW1LBY6&}*Ku`$u1C82rw@!W79+(L(pJ~R zb66H>>cr&x3}4)5meq+Knxam3Qa!eO`D=z?kcEdeLvMGnolQ8ZxfnJ7g7r)ED@UcD zm(xDYB>MC4luOj&v#*jOhRf<`79V@(*B-^z8>k*#Un8j#rMlTej#qlH8SgLhU?6?v zIKM<1)Sock5%r06J@w0EJm}!)It_&qE@~Or?=wUJN&;TPh~0bH`6 zI!~2IrRz7l@f#QzCGXO#M0@g)E16V1qQRr+qC)qMvGz)LLCM=@de;hw_H}0qjbqQJ zaew+5*E(NtQu<|$EQHKkYBsy~hi^b*uO{ze+Mh4Lb=twNK^HwiFV6AAeQ#c0_iWzl z@jf&nZi80ed6&lMNuPGy{>n&agVp)EVG#JGL=%+OajLKh8HRh;F*Y`qM)F{Lrp9hR zUx(yZoC}nL)ilh*XA$4KYo^XOSdW9k-zR!wJ8>QaM?0ZKtgaEYXKK6X@DWJ!6r{RT z0}ZJOhyb^l!ZYXF9#TVvYD0E)GGd(Wn9GKj7{8Hf9AeECDMN{o#l~GN57r*{h|rDf z&R7PlDKYzO;yt;cDaW$P*d#UXQ{kBOTUB7QsJP0|RYWJ9X zp$mFPTk)lh=mq2W+!M+Q3j0zLZMQa{5Kqg$uEzH26_#+T$| zl*n2Toh+eFz^jic`t%EGQ0Q!hD%_~NP=RhWJ=j`1ddGfT7&^MCUwcGQn`e8?o$pVm zIe)r8!O@1+9)kQhRzRE2!Z~UW2RECoO){8~NekxH&gS@0unN=D!+^{TYTQicM?{Y> zwBY34-uqN0_K>Y}=4S((;C6=L&#bS`7jQLM1$yyE=LOj_w*r~^G2C{4AGJ~E?#Gtr zX7!jyomdbe=d}fEJj6TkEy}y?H$xV@awsf-9CJH)4w9VThJqo zZO|#Q3ZBMS#yPqD8?ZKVRsJtRsXhI_aYpBqEARBXbw{8CyO9dK8ZF3Jx?F}rRq<8xB!A2kB~ zab6O0Bd+#F6Y_3na|CPKIdK{K`~t489gA`EEl)NUKw^D0qj$Yu(Q3-Piz1AZ8m5Oz zJzvCqHc{$aUon}rH*fn0zM*n>wave1F77k&!dRZe8ISL<_E)JF&!2pncflMzSDUcz z{0qXdg^U)TU1#7^8XnI5Ekrq%^i!nw4V+3dK&jD)#FyPh<4QOo?zLB^32lLCgIuF>9f#ie)Xx>kT}I-z`Ku^N=wc&N;AAae&{3#AdIj3E1{)U;1r#}vu@ zq+Ht9<{*mdItJgHyIC5`c)I1RpT>4 zgZ-bPrI{%ld;z$2w1r(+r?e-9@N=d}%0FKks4r2$#$8Y5S0tod`>RY5Rid;ugnw2~ zVBbgTktck|#F>QC@qBeitXuV@^@U_xx6RaVsvPd1`pY$WDYesct--{P1TZH9&_SR8o8PC)|V1{-Rv3Z$> zEo&11q8u>#rHrTu@gE^yE8(_?SNcNNd;XEQzJ=u%9tWZqw|u&PQp##GRG#ntcWhnPDAX&)WOf`p z#Dh}iwtr4R%4x)&+HbZM(nSo(2%8yCVFy}Z&HwJrUfYNyZp-OOU6xu32zT$D%JR6U zxpS!yD)4HM_X$J40)UJ4vLe!cn$B$E~>>T4^5yL$`7E~R5kJ#^)fC^@ia z_o9BvaP+>)fJZgm@Jzc%#}{Q#4DJ>DgyN?>UywIf?9=eGwrK-upoLE^ED_Y&WKNWv zYmE;ZkFp${$9gKRe?Hdfz!^JEatH4HyrB3_`9&=8l|n+YtVtdl+4M=$4HeDNT@@s$ z<7XG3GM%T4$y6?Rtdq?4hH2C-|DFImlVqxP*` z|Jp_&p2$N7=&QY!S93t6m$sI_;eu{k7VODfu5$je)Y4$|mO6SD11z(- z=>?jfsI~kk?Q_L`uphtg?<{z+ne? zf_707+E;jgty%`OKW?Z1OMY@z=O5Mu_lxzX0QQC~zFT}x_ysg99v#DQt8jaQ31G(J zwzEET|2#BKqY+#M1vY~t;|-KHoP($pG#VLfA{h-WY{K$opW_Fl?1ehtNSGS2kW;0I zpx96|L-UOL`R{R8yY=H{gi9$XC{16m_zEI2aurcu!FvIg*@?1)kV6axNI`?_w==^o zRHXNdp(m9aVeEZnzdlvyw{_YV1TcwHW#8o4x@9b`GVB{vn*>wH#1vU@vfG z(|$wnq2-7pE%{`>7Pu-ks z^@mOcyKi@QS5#Ws_-$eP-2%jTmcTqV)N#xswa!-MxlrabA%8f|SFCG1K)TErdo11B zX55|L%zJ2={a?SYqW((l_5i(O^f)nMKL-S6%g0MaQr)>tyk^4+;5r|xc5WaaZL{dSJMAUAaq=kaNi*)>`q zTSJmFFs;^477nHT;VQL12UymKT~#EqI}o8S+vS*f6Rf*NJ8?}dv6hV@7{4WlX(HBe z?|p=cy-uYE0H`@`M~sb86HXQCm8m%_5$!Z+Vl_X@Tw>QWpV-dB;}Y?>*dezM__-Qj zlX64gqv#z0ioX$6aR0Xyz})*EDS%|jWHD5o%E!X}lb4mx9YEll+pcLy9gc-DN&p6Q zCDEU-t&@r-Ifn|079mE<*GsuPcB=;sk-=o3kNiBbzX-*o=%)5Z=~5kKovN5pF={>s z(_0OI4w>)&0^0dmT|we^ka!x}T&^V4jUB}VB@XVPW76B}9XIeObsu4Y>mjhE39Qx#P8 z9{L7>;v?4>NdwVLLRQsmjuVEn-VL9zA*<+a`jKfcaGjy2);4ElBOCDNZ?PYq?8>|K z?1j0BSIk)}wK{NrP^7YgjKCx9w2*X^fhOT7*Ip_*!%6htWqv@+ttvJUOGao5K>&|v zpfq88yWcr}2+yw@m!+yo3>(Ee+=Lqbe&=cz+!*$A%y9H%snE+$IeP7z08Qira{-w? ziXw^?b><36Ct5yARyVqeM!iE0k-Iao*2OLA4oI4eQxoZ0ie@q`pv}i$m!(*kx@PN} zNT9lVhDc4W#Gk%awI&ZWFY))&t-VoZ+!7mSejVH|mxJa~*zMm1h4J2rRYiI4?Z|D1n+&02FIZ&|z`b_Hj-Plf{q zG!`*2?tXKTs_Q@N@SdoAYCfzIFVmhxVcg8q8=iNt!>KdlT?Yj@U@_X<0mxAs+*&y& z#HFjJbNQ(foX6Y*Q{awWt4omI_1)~U4A+y*vylo2i=lXtG1XS9So`4_I!6+8KoAAI z{7NS05=yq8*x8x*uZq1EQ5^UR#k)chpM%rr*4xjhmYJW1)`)-_*(;^mpP2-mNv-@z zjO%cp`944j04P@79xQ>`Hd&s=7JOVgKljYY&Zd{TbE1>v|KYFH2+*#D_5a-~2YYs6 zl`>byT~K(7C;xPKJ|s1avgLkfx*0jgrBunf?9c~In$MeD`q^u2?vFQNT0FU2tnAC@ z{B4E^0652Dc@&tD=z~p5GB>95YuWp*!#J77%9^q6*`Kc8&H@bc`R4TgMgym8OBHqW zLT0`7sVq*?!x0}pX&ny#vS=H~eOJDMW}xN_!Et+kWjNLn754^U`vBdDCI8!7v)-3< zd5?=Fru)ipk&$-2w^#d#jL{UG?B`K@!YVGOggu#pD$N`K!1FG~<-U-39d&S%+t6aZ z>+}NplyUZ%Tg^h@wuVuuJsCT85t|*4x81^J=$#%ts7k5Ozn{R3RZ>w`2{nj|YzxU){?m#rsid~AAYwr;=sYoYU^@0 z1kaME&?{r#>pnoR<5o4ntr$&h)iG`CQ672gtAxIN`t(a~l9r|o#!jq!h12|PYyUvJ zbO9o+NWmy>KsqE8T~SwI02;okJ~B>^Cv<*`@lvdB2Z%~AG9{qKP)=Q&MDz`AxobLk z&LM5m5sJJalp%WJ^-g`wx~rOpB>Ki=S;kVfp!-B=#QNQ}O(_gh2U=}x@SWO!95VBk zIMw0%g!#tV?~XyEV`q#GjqFy_^g`&Vk+BJ;%(CmTze66a%lFgdCi^wzw%drLb{X&U zAT6;aic1h#`22Zi>H&UqX0Id=fvR4iO?*JPFd56>=!HCL<{e9xNb`QcBWXU#Jph&a z_7f8u-Atqu-$R7saJmv53J-f;+}P{q_;|(|1hr&wgnqc_4-5(2^`I0h4|(U@o-ZRT z-`UjB_wkvw`5@1D*6`0T5xLVLYy$sA2%yUPRs{BN1X-@&;U6#vr@A0>=4+fhoDVI4 zT`D;g1n^t15kW|nN5RoJFC(Sty2V05*3A(`7Ucvg`(?^|q8HkjXekumW7t$kg*hnkve8QmyFJjA0ir^&`Mw zVCWqii5S8VM2Aip(Ku1N77k{A1$GW>JU9T2*`iY4NP6-Xd09rMPf@N~Q1>(i-!*x8 z6UH;x9(p>zFBiaRFuTUblFt9mbf{G};X~@9lE+zC?Sc?as(6O>Y%@zN$4A~RS{ZI; zX4^vmcCPvgSW_;}bq}hF(GnZbOM`(3aNx+*%ddYIhjhCFtBgWGjL`LwM4a=OQa7e-1QOwI-2Hdkw5 zP_r_VsiAFDiYq|wWXJnVKPSN`dZdXO3jlz3;XLnZ!H$V3Eh^a~%42Ss)K&M^-^;Gg zxthLAomNT5(og;+Gc1OQg)bB0J@vY?gPt?`b0FtWr~S`n)Ae~U!7qkHVQE??zvA#6 z82L+{NOmwrj)=4c6`sL&XpGxMq&ob#J79LlzjS^+&tVR`s_P@$?RFjH@E-!!duzMu zWeOIq#{3QLr$OtFn1=f^;()2xO-44 zt@_?phi88<<;jr`M~;EOqrk{Fe}$m`8(m9#++ANwc6et^1_;#n;GVXk3Nt0Yg|-F% zhtI`GJxjR)?6_s%uRL5tD5*O--jL3};e7rvlOIExQDA(-3xzwz#&*h;Bt-3RKDrSB z(s?oPrj%?F>@IzbI0T)wbe{rmmg1wL2?4n;J7FeR0Cu{o|NDWMTg)xCzJ3kO2e)h^ z{5J7C9MWb2mKti>tM!}3NgJe~G746P;Aw50 z$u_{Gkc<~adD-zhMc^>CeRiJ2H7q>Xh{y?L%%Z7YZ?voUSjJMbgzGcNG!P+-2#{!H%pU;>8Gn@iA6G?XD$D zT{5y*_bP*5gn6i7%`I^+F3AI``3Uv(VOq*45E&%9=`C$=ZAqJt zeM$oMr}u$oAwWT5krFgj?V!BxPP_Xjy8;QHmjo^b^;iIVj42A*HXd-4>6(vKoPyO= zX3(FVzQs%F8IqDAux}6u*rc~s6t%VGg|7Mfqw8&w2$bH4Wcg1Gu8s$P(v=T1-@d9 z)7#}{JVj<3#%Md@HQ(HflBA=q4Dli{OMmBfdPTbFZKBXnpPbO;Z(tJ+)ZQrL1RCLv zz5*jIv1_lONNX7RPNRz`L>Ei|0UsGthVlQSe}#ZLSWKd&Va+t*5szJ!t~v?O`1ZZrq8GIu7x);Ch*TTtf^ccNXA8&-1IRVU>upy1~{`MiP(p1HaXh|SA8SE|~ z7|@$SM@rH;1^CloW+47y%%|@j@B##AkGq2bR6;g8+1BH$`M4OIE#C7fN@a$g0LEmOM#8K6AZxzlLif~F!7vV!@MC99b51{Odf^d>c&I3e8=+3X=^x;U z7>bDhhQY@@l8Bc46We6ULcZhF!b@>f@5gTh9GjFrUXhHoB@86r0n~rOTlozrg0?X z01vRod7J3fb)BzJlwIL*Bz;>P9XI9(mKP^uOQ^X{uu~x@V-*4FF=F8&B7w-5W!sOa zUtqreJ}Dl|sg0!V;KM@L@F=f|5B~2CyLUYpyVL~Q+j%CI?#81H_%^*yvth(kz?9`) zxUCjC`D7zm+ck0`0@~8nrzATilRvTa=k`tS{EhGT|4MWHpE<)2VNQOsO*dENW4s4@Im|K_QmiaypI`Tg+chM(HMk(w=^Ibm`0&0 z|Boj31T5|p=ARgC#xKB(THSfJ%CX;ccUwj%&4Vx}`gps(^Z43s9Q~_=ek0W?31xeY zU##8ePt>d3rY~WYS{XR%eRJ#Py8bEbY=mKs5#Ywn%*@z(c|G~F0P30&O=Y!Rg7DgohF^Um+pwj!P#&A@VHx0L4g7m-~3y?(g?^6lXnBf0H_lM0- z;TD#V`k(x4UVvAc-Ki(+20J7GLEFDEtJ~S@!|^wL^oP3kD}bQyiwaB+IJY5)Wr;)d z8ev=3*mxTXb7g)%_;0dcz*NG)AXlA#$xTC}Icwu={sfk z98?0@41##^&`m3q7pofn6%o^pd!$(pdHbj$4T>YbQUU_MV-S8|#>88JFJfnvrWqw+ z$1M@uWO=d5A}$+N@z($VF6r(61=tf&u-j-W(-5^=HXyq_3bD4^0j^x~E3V#b+4gE$ zdJg?SZ53L;z@&J8xr&sS@Zm@Zt}ZKCF>5Y{deHY3ZLmmozUGtpfM29y5x9eJpM2uf zPWFveM0Dn0JS97!7Z7L^Od^6sEn-A46RG$@=KwpGKZg9`f+sqY4TxA5eyhxXw9}{P0MkMH1~) z8^rPa`uekvu=)m>gU@=u3H=^&nkS;WY=OzLUSbfj#ZOnh)wPcX(HMn`%LS!r8i1^D zldywr#w1s4=J{ND$xvG7ooNrQdobq*c&v!ODr1o|y3e9UB2!ycfqSFy)kGzq2B88w zwi^tIktymu5aXOQpT*Ea<_nC}mtOgCjk5Agy;75bBY@~OF67FIt_%&&5LE*K7CEZ`yDKTbKZd5+whfYK|i zV$#EV5z*$Sjt~`S;uoP)cln1ysdUhPgvmEN*w(GaOkEG57&40&U*rlDEr2vy%VGq9 znnpS=YyWHp;!Wt5@PkI907h{Y>?|aJEb^>m9>owww23 zCCgL`^W-BdNt81z7i;z>=b|s_F?)&|qsVVhXOXY1z(fHmS6a#dvkuajha>`)=l`JdGv`ccWVIh#7=GhPZ^@ zb71&6>{;jRQ#p#A7oi&cw&9o=L!1cTrdv}HM0M{%{j0o($qcQ|f22R2S2VCC4>Jtt z7nvB-GjUb>L_$bc&L-eA|B~*6rZOw*urfr3h9~1p*yy;3n;znWLo?GI{~v8%FlVI5Z`qkCVr}YkJY+}kS?Q$Og#a<`H)LSVRf1igr<$Q2 zqb071jsf+ESochG;l^?Dy>n!i4dB6*8Pg%W;Y|UA3UjQt!mH$~{SVHDlZn zoF!HlQo^rt%+K}2NeFXtoS_N>nekPwL!7VsE)KZnVOROza2y|1hCXz_q!wP9_bLgi zpO=g#e7|##phZJNF`DY^@ROxME}}_477)Y}@;2>Z>sQqy*5^Jb&v*UgNqO*^5XSh6 zOWFNm66oc|6OuP~Mn_Lk^HHFUpE$5k<%uV2-0Z7;V4EH*8*;V26dTNO)zLwY|7&*& z9&%1+ociwEU)_ECwd>wJ+z`1YzpK9b?7ro|C5AF6n=tn5+vm4=^JZsv2fI}h*S}$8 zuv0R+E+yIekRfWqtEqZi-BJv!3r;^v)6SQapO^GXf`NgDA6$lq^lUb(O1In*o#Cos zKKGx^+*Ss5h8_W6=P|2mJ5Thpr?0=f65k|Sb)%QL;g*7)8TZ*we;y|b&i|%1_w25N zz=0(Zo*MAT&$sVe7rqzUAG@QX(a_<~N$v8flYRxB;R8n71a{EC7YM9?Z2khWNFTRG gtc(Oz^mH=q=YOLF|9Tla?*@>Cp00i_>zopr03@*%0RR91 literal 0 HcmV?d00001 diff --git a/bsp/renesas/ra6m3-ek/docs/picture/lvgl/13.png b/bsp/renesas/ra6m3-ek/docs/picture/lvgl/13.png new file mode 100644 index 0000000000000000000000000000000000000000..037318c39d64695b363bde3178bfb35ff1753c7e GIT binary patch literal 11663 zcmaKScU)6V^Dm&HQl*G=R9ZqOAkwkW2{p6`h?E1OAksUCibxR@4v^4GNTh2J5D-x5 zhxSO1N|7Q0L8O;ZZhU|3z4vqPtUgJ(`qM=}GEI@Eu(einK+Xe#^p7pc#TW=Kn&0=!ysrg7)JBy)29t6`1sSYqoX54omXILMx_r65f6e$ zB$62&Oq|9{RZWA2#;m;j?ee$kiK!prF!2I28aX*cg}*%yEhmj>AruS?hDp6zeRW*- zDcjcuhr{_8X@03p9ePNjm}ELgANXl#A#sN-QBO-zkW{jDM@^J zcu?t7LV1_ymfHE{uE)L6{X=sMp<}HhEZAJiN&m3i+O6Pja$!s*h0?TMPkbb+__@~B99cNc9#)oXOJm1r=9WQpFXRvJo#k@}=X*&8R-mHX2_O}v z#N$@urU6~(KW=~GT9^?54N@tI63Bl@Ue><_C3^4mJ$N!vW0QU(D9@qNa_KCb?`~t^ zJ6G}9Fn@E{Y)kt`sSwIph#j?kbVzXz0?a|_haYv#lp5_@{K_m(f%DhV%ZIJ8td7J& zc-YXUuEl6*ga3kcjrJ)JFeS~;0||%f9F*UswN)b(j8O3MuZhLrLi*J4xQ23j@a=Z$ zS2I$2t{F;w_|0P?4y*~T=L|qwp#ljlngjWnO;gj!`%P*q(zJZCD^O@XOt|u-^^Bed z@6vWOaV~(QLaCQDd2foYAi01wk{^OAYWDgGgs4@;UmAylH5hsu|0s4PLmD8C0%WYp zmN*73RA}Au3?Q9*)ZkVl&_7NgG~`*!K!Te5c(RE9E(3L&wKX*X8A{C1?@h__cGrkE zYK{x5n{}aNJta)VDo{jjuZaD`g)$F(%%#w@M+^&cTt8b)3*9reepS=p{2-B){?!_=i?N zak}mr8V;LXDV#R67+ne-8O=1sdYY`5aXn=M&tr(S;6xmf<->Wp)a*0eKLS&TUs&*EO^R=!J8H&ZoW&_W2OBA^(KTQAsmvvYrXT9=lU`teyY;OV@1&zOEe$eXf`#oqKN&K-W-l%8B&JA z-@+3SJmnfl9u1**>LFXEIwj8-+2^M7lc6oE#f)*{wkshKj>TIn&3&L+gX{q0bm+lG9}f?ghd1a+F;U8vur_be{ zp#h|OZ`9lxscJIRC(W$AW~QDi7Db+}v_QU;F(i|eoGeTAFg_c>W`12qURNcRjF@2CMC0;;qAJFq~a`LuHyKupz_wWgE-MsegJG+J~G2eu& zn$Htra{_2w*V+beEVpEW1T6)dl5db^7*B^COL)h{qrsia?Sop$hi1CBZsu@`8@_H! zy$U@4?yroj63lsUP_^}oGU)xyZ!FJIV}EjArS20fY@k2*CDCx+!eaEeer+jqA?(=r z5mDCEm3zCJ#h)AXOT3$J@* zl#+6a%llgQzD>#*B`>Uu{#A{r?WgIUxArCD*CB0n=U>1CH9Aiil&nHZC874 zSYL)<&%g8z&h<@3sg=t2u`8HaheP@n?A9s0ifgtf`=Ma3oZ@bdxvkQ@xq<8%b>w`e z?8f=qm*8>S_ZQuLA@H;7&jB`RHyNxSUWFA^4@2chrGPi!-#ly!JWDs^(mb2Xr@a2i ziy0VRZt{=HZwJrf4V*F$vpN3Cm*!<%D=pTcZ&7;X0&LGBf2WG5`1TT=i!`CZvs3^N zt0vaW7SjMRanA2DSvjhS^6tRYNw`|%DXL;1>dO~ZexDl1RCOUP>;q|=jLwK_BpP66 zP!=d4a~blU0$&iy<5NDPhe5AL2($Dn0N+Ft2+xwdNeh%%Y`-S{rBe$!yz%*Qih8D_ zEov{}g|`1Dxj#SuIblK)zE0wT@tKk|9~tP9icYh-{r36?_cgZ_j0nChG~R_J_B~md zSb1VBm->iUp~s5Ilx^ITJQ%L94Am*{^rPJM+qvtfc2Z&9Ic{1sutzxa;9}nq^QAcf zZ&fM>hM^Zz(+}ny17~%1D;n#b7In!Ph~P0|>UOL{`k-r-Bz!Ffg# zZznI55!(_9fA7B;y|a49&hv@ZPw(Sb=(O7R+&IsuprD|<3z1rniM9Rg?Jix59)i2e z;xAGp(oLjAUzC42g2RknAbbX*XY41ch9)X|>qLSsL*qu|beIdPW(8oG*4GsBFzk(t zn(Ei@-xvCRb~Pa9C}7C?xbmaipXbwrR0-SXN7LhFWurQK-C7bm;!_YWG76Ch?tIVR zv309`Y=9qSGE(+_S7IdT)6XBYs~KLbTRmOv>?P;Z*2k7)FahY72x2WK@VW3;xVxtmNi@9Jn-u<3+#)yGvJ%va8MI5N%4N8`eLR3>bQ$_ zH88T1*C?Rs7}(szN00S=>*`B3F-5d1q?X9z**s+|rT$9A?c!!gdO9DQu~((<^jl~H zxMyws_SI@R8JCfbSf&ud1UUSTpMd9I%TUbsf@HiQF_^EXS(OO@mjRwr^NxI`Q~!B` zBPmwwutMwkWMSCN?o48Gkk(@ah=hd+Lo4E@nh5B#Tv*+@&9op`(1s_Mf4SS+r?Iy@ z%O=ZEUF7C{63{aiOni7n;bw@Qo100G0S`a^-7;~YP$p|@nYdh0Q)Uk4yj@{v#HvK} z?u6LDF99mbNT;&iPIQQ7kJXa+9@z})Ki*%iYCKr@-MO5cwbb4`rowlV)O#h?%q*}W zoGY4``I>fwofxq9{cR|^fgo1&?87dVux;}9suq*g zsM#&f<*2t_4S6pSf}iyW*AGY!PQrH2`d(H>E_vrRP068*ULY0H1c5IzLTV+otdSDs z+)h3PV1?iVp%p>--e500Y&m#FZ`hrzJHZF8gd1JsX)IoCy#$5#{)@(g`$gKCmfzmt z4#}L)PbxuKfPFwbd**Q92|cQW|wI zwRG$>xvOQ$z(6zvwKp0PkJ^3(xGDqRVq+<>vEK%QFF_`NC1vC;nJi3v-{u*wF zj9g8YZ=BlXuAX{fg1tLQ0UZjL&$z1Un4F9?un>E4d=rK`TfBS0RI3AD*~1I6!0xE9 z0YCN3g7ot~)cQBg=`HRIRhQa{aj@>SjO?E1JPxVu+2>;ev3fj3E?k;BEfN0jqqGA^ zGFLDf4H2ET!9Bk$cJ4JJ9~e?E0Xlf3M?z0P?B&!$btD_Vm`B&v?6vM?qNvi2&(~B-LO?L=Q%>@<=2Vtn%O@<0r!9y z1D4cr`FG6;sA(2JR}c?lL3IvQoLfZxtTlvPd5kbrD26lInnZJ@W;;JYM6PQSwk2xxup1V3 z8Zsl|$*&i?rR zz4H}F?Nre8MoIz-5%D|6q3x?CT0PVK`4S|}xSz5jz8b$$C~HdNo%<&cN#7oSdw zwc-LEPRj$ztMd$Vz4tGPCi$w63ESfVxQBl|vc%_)(gW zpk6YIiQv<4C-^^A3~u*%^+>zPHyo7IgBQkO(7T$}=E`#=oi9CnmEj)B$U(}_m6r1U z@$21BUdo>7>>^0LtT3p-+&Ish?|JaA?cL)PUhT4WEp3rNtJVB`T(Z1tVIux}UnLb( zw~qc*Le(`p=UR^ zlLMQh5uhcU?~K#t!Ic-(;alLTo7@4bLSVriu@hA9pfjhBJqrRzY)%b#nw!Pll5R1e z@^%0tK}s*ygA*_qx)@D-<4keJ7qOsb6!r6abs+vg414kQ%s>cM{SuMknsln<=lf{v z`PjIp(r=UFBXdNU2ZvE&R-%B6xftu|&rzOgNUJn)xIUVwsQRa=xfSYaE&>! zXKlR(10;$H|3RT~Ux;*9uA%QyAx2>lq0o`Zv_?yQF+qCkZ`fo*Y|>NyHsP8-kqHdL zG{A9&b(}WoOn0X$P@;@{s>cM~xL;vXO8AsQ2c#ixuK(yuuzlp9Yz(;+y2niTy-_l) zTF+_pR#^E5H!a8J1DcgC5wI3?sZ6zh;Iqe7Fp-G?)#7=4RH7xa;rjN$2Hx?CpVD4; z8Ck+C5I&TW{KuDWF~jvcG2D7w-Npl(}oYI-f1G7jSvn=qw+-nhU>4cXf?8$;d2G@ zr8c+}&c~K)HI+8|@8=berPwiau?0&AxX&J%@b0^!K2{OiyP<@{zWM-F(g9e6=-zIV zZBAr~_x8~Va4pxrw&|GaqLbQ#;n>$n@IJ7sd&G*e)H;2LxH+?4Z33_Nc!@w@6F0al zGWLXAY@&(!Bv(;_fgfc#15n_~&fFuO?f)lyME_~l1;9#eOrCN-)n@;}R!S z&rMq$V@y&R8NhZ)WDM;2fx!zR69bHTN24M>|0+9}{cmvmIBCT?Jwm= zJ>aTq8zljJ){OvevJAbfcP+y$$Z6z?M;Saz=i3v0mLhw$N;~L1jBn`q&V_rHcQS~V zVm-R-iIx`r7{P(ETLxXiB61~4Bl@cC(q$;uOX z;n~mk5cZvkw^Aqu7>XWJ_XEO}C+*?}JIwC|as9$y9O6G5{l6{||Lyj@heez(5Dj?G zO9m$NWAZC_?Mx*q$Q)1fCoqCKz8GAcNYCp8YC;nqaGp2~N}tTI6cSiU^*d+g92@sR z^z0DkQG&CMC1*DAs_}pU#IA-EL%W3hr?d-^l!C?!BZ;hWEK#cw(uyq~hrty6padiKK1oH_?DO|1 z`6c293wh&k{^E^S_=@&&u4n}3|K~#~BVqYcJOD`*S*(;*-r>qQJ!r%kYY=a=^l{>ESDJ!XosFIGk0GPg7O-1GIB?NBljC z`uXz{Kc82l4ePGXd_X&ZLd4g>Jjn{?JM}wLUccTMH8;)i8IKxD{gupLnQFGN2J|}; z(461b`><+~Yh!!)zDEY#cFKe$c8y<*bWcK?E&%6TK zQ*_O~qW&UF%di{A&!eJ#2)`(IDwGh=n-Ptu#?8x73j}}jjWw7-XNk$|SEtN{;Hx-JhTq^U7pU z%mkaQL&0s~xx6PeQz7BAva)$2Z(8MtKpqy9zJn5yCu(yO@V171!pEp)V7qf7u4zmDiF_xqW;~98|XP zTVMMf`b2C09kq7M>*Bi;3yMyCxY#hPQ6v|&{MjG#T4qB4|6}95<6_)oR9$7*@rTOL z!(~T@skMwYm%vtdR$&r$3(GWm&*Hvv3i005@{Z?qx6PjLSooYa(HiB%@w(@rnY8RU z(O^I=s%3{B4<23u;tp~bm}NFk!tNh_$lCyQ|8cT#L9WO#Zy%wxj)pe&F9HM0^nlPV zva_Ws>aD{Lkg!J!&Z9ES2QM3b7C8_+`d;jq5!Z_xG5O8NQ~s^@EVST0dspz*WoP=mhaju7Ix;_KFMtP6+^a1y6Fr}~cfs27G36i-YV zN!t`l>YmQXYfB?s1l}jbVVJa!{?k?%{w7Yn*C8`8t%U#0RrnX_BsIZ7bTElX6Bs~yOg%XFpUWZaJ zj7JNPh#)_nMDdP+=ES9L<<(^*z^w(vjCsm}gYVS8ev+AMKP;3@@{W1pQ=OHqkg$4;^PJNY8+QJnAyaUo=l&o425_ zq}BwF%ZrO*TXDGZq$Ii-^M&u{;a$kP=!OxMaI=jLX8#x|CJ@TarT5%7jLG!~R zrc47EUxik&9=f9x42X@ZgCQ_zHKTWmYGIX>K)_($gZKo^A8T+)r{H*|2PG{oF#Vqh z6YF!KGF6iT((^~h>H3?}>&1*}+h*$&NZoYnY5B0)B z4+%-w>b?xNRfMIBoB@Z1Y5NhjU(56GzQ%EcIU~f~QBy`7OQ>zsOz5L=bi~tRN%rGH z&n-IY)}UX2veArIR&ZtCfK_oy7?9rUlyX|+7IOdhH!&~u(YzHSEs1xIEh24VX*0cA zzw(c?!S0+0wQI+vxE9#ABy2=%Hz6@wbTC*E;CeUZ%96T7{}2)hT{01x?viyR+38-^ z2#BZKPvu(L?H7h8948psQT=$1S_YMR)lp=JTvVP{?LhvN`$CHiK-b9j8kq{*neJJ& zn)iV+aN{^$#Bu)VP4N=d?wk?5Uk`qh7pQFQtRULhzuEAzZ+EuQ;(EfQ7Bl_2R5!m^ zz_pxsGJskb0*Q2vM~}Z72S737xD->K(*nbJxFwOGQK3t;WZwH)ZHGF=0xr7nmGeDi z+OAi3ghI3x7XQdXvJ$J|q!*_(O=rdQU}g9)0fqhdA)hz%%_Gf27LL3Rw7&O6<&x>4 zQft@-q4jek%T;|d7G&7$y?SW~U-Iwg&i~Pm@X6^0EpQgr)9%D86&)9LUT^Ng@>s|O z!IObs>}=ebvR8=It}i03Fk~Y<6R-FTQ8(u4FUguJj5i2nNj2r^Mj{?pTCjdKX1h`> z57svwmD`12?ANdsei%gnQs)W1(JcJ6__vQVe(1i3T@Xh5^W{KdaCwWz2se9@aj%#^ zM$vNR8b|3&QCXx8rw)p}zBCkHVfiH~V`wjvtcE=B4_Y#WN+==NcTZhrKj7x%;vQfE z0bO%0hre^dinhi_2U^7hO=?ELReA7dQ#6?w-r3cIi(HrWP(cE#5Z>H^ zao$tP6Y|xoa#obvj&5CP7D=x%x_N;T6=dYqM3z?5ude(ymc}0ZRBT^&^T=S&<8bb( zJJhMTjvy6EX~cF5xuo=pbYjA@a{t-X{sLM~YIsQQC5@5Y>o%^aOv|nH#~2#V*YK4*M`9to#NKMq+IiI`=|a>~`JcNp>xs^qe#fb-=j0s&hv0z? zm8|LzS=B9SF!PMx@zrc0LKR{@R72@4elGOWh;J-R((C_q&!OhrPgpOi&X@qJ?zRHwExckiV3ndb9@yQFpV4zX17ElG2=_=!^R@boJYL zHB2!z&oR@bv~gm7C9M{Th!M6#V__Q+q6{WnOG$kntKSKTHOXtEJ);f2!;4ZodDH~f zS1layMOEE**ry)73oZwTslqlOw+YS+NPl6xvZH?Wt4 z+Rss2L2f#5Wgrk3*RNFyMn=4@({eG1@{3w#_R$6?yogxc&96DQM50Xh&}3ZNx>|cm zbE~4dBc6boJ&V)?ZaIJEuKqKoOU$F>DG#v!>@n0vUnyJ0a4`IZE_eWR`XB=`zxNUZ z+5gWK^54?r|F~Yt?Ic?;QQN2}9Fw&hauXOEI`D<;oZO4af+@cenXF-_lxR(LDO>S; zLtzfobYf_}=lk#HBHdST0JYE^SF~tjy%|~J>dZi1y5~<1W0XWIBQIR03tU)<|0nqu!WyC~MI&NMCe!OAjdbZGHjr)X*ms+vLB8rdsf^$V5F0aQFQF3q zOF{uc7Q+WpVyFmZsA>W8l=ovKlGgmj+%+FHo>XD5rXjahK8ROD)(4_9L>;{>UXrV^ zi45+DCnbCxl&A+O@3pm@d$Mu2 z2?yuYUuVr!SS|5w2{zSv>YSpt*kc#^NoDGNV^7xyET7QSXbKWsHuZC!fAx-E z%ph^FI-GM~L-fS%ROCxyPKO+T3op^O3S~4*XtI>`IHgofK`HAg;SL^U=2oTYqvpV4(Z6gJ)41tz;oYnoLsspI1*H{vuCKXU6ggNW zgdh>uvBncGyQ8Dz{}LE%iYnpXI!wwMH)B-p@^%!prH(MOTulpZDfiGf(QPOV7PGX< zzq)J0sMaypC;Ei!pf)p?lnRn=wMdy5IEC8|?-Bj1Z(JO@KiOseK}mM+ntjsvJS5z2 zW-a|Optsxj_2d4-yp~{})ydy-u2#IeWv6WBrtK5od$h^Kj?0)^znsZFo2CNL5nsHR zaO%1{ZCbQjnyFE~{1&{Wcmg~hIV$f0+1`i4?+&Y$mDVqHR$*~Lnu?b)LbAb z`_2y@#Y5W=J52ICa8>{xkM%WB2Vb$R`N_Q~>LpomUq?$p?5arh_~nqB#r7#SN)r2G z)+~4*P^Ga@3YMTl1-#;-C<3N2dED1u{9WZG@8BSy<^n+$!*PbcaSh(C)p6rYpp#M@{x5?_w(dSkTeB)Vj4(CIGH)y_}5q#Yv>)%VUMPat~ z21lwyVZ3#XvHApq_&NCkQAySTiyeQze(Cw_vo`!)cqRSw-E3|BQ2LU%%85n+)Hl)e ziQI}O#b{f{+3!v#PEJl-_v&$rgVVttO|B?9)D?k6@5Ni@5%h^c4f9+Vp@9zOW^6UT;0WL9PSVe10AZ}&#BbA z18Nu2#M3xV&%l&j{cpH)>x1q(e7aK>>8ht}F{m_zy!Y*1F7}nM2@{S`XHb^OU{@<$rvQtML9*^H9b)g1r3O!5on>t*# zG?uE-^eRjs>+WITpXc13m01}r5b6nw-;UJ?b~E`M6k=PGj)aFZu^BjjIo$-jrZ`9o z$G>3pMOk|OBuv2pB(O^%KWoncuc4rK#XfR-j>Ubvf+0Bb&VyqO1r5W(zAFlK7*|EF zL#;Of?}Vr6?-;&;$Gd3h!o3kYq%zH}*34&bPMb`M#N}Vl&*&hhSigRjIov>=LiVyp zQ-0!ALDyg>j3&nH90? zaj~?*`p{xhE?+z)(t;YC0(X3+&z=Ke2h0`osJK-$jKDQ&**2SGiWx$V~;u zm$q0jZw_ks-RtQH{(9#zm9>Mr`^~KDo;{?@iZJ)Woe+CFyLME)z*z@*co4_2URj;b z*BsPa|Lb%UwfR46fC1&cFmCft?c(`5w>=kjb!pk|ZV^?+hj&#Z-Lg}x1 zY`zbRR9@Ib?iRwZ>mNL{B8YP9dTj8_u}S#3$BUtMY@jHAmD2Mak)qp1e-L@ z>!8G;Ziua7RKQE&+FpEJs1Q!~#}+Z}rLCD>!G~Mn|Ha2Vvgy!mG2g+j?XQDLitIt& z!2h0kKOwybwSV6&4LWbBO_Q7Y%cCnnm?S6S0+9Q^00=xgP66w-s5z8r@!v0DyxmEX zXL$}vlWxq3Yf3zbEiEnk`uoSmzC8KsnQ$_}`13SI&M!XyD_JD;CMs0HUr7HIh2VS| z(mZC;$ckanUuM7pmcdeE{RN5fSl&%mJV_(xujt`Ptf%2;>zqIB&DJjwy-s~V1aA`W zRjmEfovGwBEDS2k*YDo`mEYOGsr-?2y$dp-qB{HYRe-%Dleq?5QA}bP~**xmFHRQ zT!PN72!A~nU4>0WCGNLiz^gbi64_l<=sDDVK{wVaN9g$B3Y!u!(EU_gDDRSz<>=u; zhA;9bS2uL)%1z{ZtD&k+asmW)C?Ih;63H;??mDZMi&Av3!)NEUd1wtR=L*ac(9C%5ajcY-XD`?bNJN1yW8?}m8lRk zKWWoFPVd84M?Plv9Ih9l>2-m;uFbf(C5&;aYU{eZr?@8RiMjF)etZDzl)}@>+O$$A z`KnjCP2uVduQtu0{k$`D4RLrl;AMc9&9};Mx$B#?J8(sRBXQ0i+-7IyFuiQz_{oqt zeaN7Muuoo6Kq|M^IDFvLlq$JjD@!gmW~XXckW6)loL+c{4Ub$&pz!2Id_Tp9*TG>i z>q)(J>t%U!CAvKG6r$MhO5{J@4~=KYoii3sW2MkVs;=NWRdy*I?G?1CK8F7->=JsM zrCpo9_RRrjR|5N#)$Mss`I=f0Ru*A}($s`MFS~bgAbkuS?znkp51%q4t3kY0Bvn@@ zm|VJ8S3!|AcQ||Lcc4#iJGIZvZ>eux8Ril)*oC@4wpGZGc!afd*}a~l2wvX zu5GgIUzN9{2tv3KP$IdTAl#D+Qj0R;VeNT~BULRQMIwZChT-$T8aDp+i!JH?Sh?v5 z&C+)52mxn3{cLxH%y3pm5p|MMe`d5vfu7qk(fv+5oaJEtPd`6ItGFsF-HcYt+Ic{ae9m(>r@rPgwU71o_K1v9GjSxi zBz*gq2h4}gtArr)&pvhSY_ZPX+BSy0a9p?>5-nxYaXlkuGuxlusxI2Tq2(JqD(v`4 zwYeOL`&zYvL31a79ua8VI7rl~J)h>DK{0~Mue;qKA(-vqbdHlewE-7aAK$RSKA2|q zLcUQCcXsw}|M2&jav|jSj5dH=E3bsO;ZD2DhaHi!da+R}`}GQqK-KllUiq8`k2$Z# z8Li9RndjxcclO<8WuJba}qSwMIX4AR>h$*#qp z*zNp^1!bHor^`FCcbRp)!;;mS#fu2TE|> zXxpsx21M6`OlPkUlkn?57&T9hRMzfK;YWJ8&FaiA%Viug&fT)uQ{%N?^!2^`cxy_K zWn`cE5j!NMtuadWvdF?pInHG`E=>mOSLRNItl3`($PU`!FGfamUBno3-@ovz+ zpyxhg{8v|5mr3Sx6t2zi;a}ToxQjV^5^$KeOoWTLNTZBa&&p66ma#AkJ)J-NLuQ{s z#xQ6?1*Td1U!Mbd*wzcK+J**x0Re5f&g60n^YOO}UpB>F0o}p$-|hg$XJ2}3KBNQj zpxFlZDX|PX$CUiOCtX{T82N*X&&z_O9^m4^FmFt%A}W5H6zocAIbfXZOV_m9s^Pn(zc=Wou2 zI5Gq-a9b&Plv+laKk=T%V^UbVwJb{LJtoRWA1Cw<*b&)u9OX1fuf>1O@L;K+0H}-V zwo}eysBox3>h5OGbIyINOd!vre!{7F;#`+IR*qw&kSn2|$_6W&=2qAAlyd~jl+;=S zUP@fW{B%2y_t`V>D;53;)^^pKq3euYde|panq?PgO<}nk_B#H{lG;>H(7f4^sguq# z1#UKC)lSnciOyRloZ=NJ$MiXr?Qr5mv4AGV?H)yU_Y;Wux~L$%1EcI7*A#1J`cKn_;lU0Ux3g*VDG&a@}8)Vb)26Ca`-jGn>JvM|$OAn7bSS0FWaDH;1XM&gY5gb;5ynGv^ICPL- z(vu;GEz?vonX{bD+!Ld+GNEeN%ORENvtm%PyKFw9W?9be2vKv7&@#=4AIO9&cR)RYZ>2ac8Um ze(H)lgZ<~Eisv$fP_hojdo{E<1(oYb=Vh}RW$nuqQl*aUE>t%$7&ogOG^T!IDvVc! z7J>(Dm_6x;*&Ae|CU)zw%ws}H^+r(%0jQ4JmbFoDcPVIjgd!bufT zvgs#cT)s`Pm>n4=X}D_5ZHqzX*pksxHM* zPemN?eo))!vus2uACMeloNjK+@M!x)(mmPdXrt3a{sz6m<7!aPk4+JZ7_qZ;Vu9cH z_p2Z2Bo9(>Mi5zO%{i0BLc}=2&YWPh$ngz~QHid_2FD$ctc7>F6_mWpF@d<()^!|l z)erU0Ww-KzHF4HiCc=$=w#xK?u48x-)EL{pp)bh4moa zblc1ptMqZJ;i6+*25kAW9f(fX^U>APeEIZs<+7S0qUImbh1(+CS_o?XmHe|f#W?8& zTq?N=TJI44ck*qHKt6 zxsUxOxc9EPSqrg?)*$4bW`bhXzHJ7D;FXd{C;BBaXbQu83M%U;xf)D0u(V3{_GprDv2 zlGo8rgL#oCHGI2t!bVd~EH&}#+tmEI^ruok6 zYc1^nefu(2@Y90%I?e#%1M_s1N*=>%a-}*wrX6DVi*n?@Xrh|MGsOem`LALh2Loil z)#c;*-y@n)K$}`2mS6YC9^77It4BD7ofQlh)W{)1x({Dh>~wL#0dbcSd~Zc!X3E-A z;=^y)V0ssNFO98ffdu8WNjEUGRo9lQ5_cSVrfQCFo+%!U?$acM{_+%MP3T#S?4tt3 z0FIW1IpNR0Ua(=SEmseFj`jMfgNR3hR3)n%?$W|!=$v~EyMT+&7J7>;DZGPFGFy*k znQYuW4GKU!QIu3EXXb+cS4|r=&hR+{mVpUi43azrTw1dx8nWpe-6jUUJBJA~t zCrSA3JrBaQ#U<&39z*}9X0@y_B30>i=IVAOQ*LYc1UZY`TD9|d{CmS+)#X_~$r*XxP5$_@ z2+xDg#FN3z zS)8p8ux92^Vu(2DLz+?pf&1ctD%EadUv9%|iruGw88mJ8>W6LrxbxtQFGR6XHol52 zR2LgT%N_HM8zWlKCk-xqf79j1S0LpEd{gUGm<9bYr1hP!0ueeIv+yXQ2J@&_Lu!jO z>y3v`^T!GYtvrV>uTGwr+}8@?{Zwi^FpZ%7xLF#ZCui@AyliPDWvmRCwQ=(>yCrqR zFk0DwDW+%5)Bs8W%r!Lc$~Txc=?{5jWso?Xz8K1x9cx;Ytx+B^d?22fS= zm}qV>(5*1T*KtE6{Y?@I??P#Q#VRnRQ_D%qCi5}uW&SwJj`1@r3Dp)gi>O;#L{91> zs@!ml{61VTRo!C{yEh9tmmcEW#6h0{B5%{ zqin`A;XS|SI-<y*jpLz;U}E*etzlh;o(8B zR9{{FHnwM0~iu_EF zv>y%e1_NbNSC|CjOj>l=IU!@UTK^}`65$4&3mtTEoRYMV{q%5ix6Rjp{fGShWK^f| z-XT}_5qM{upJ0Q}&#=*kt4ttx15-_jc8bo{r^JR>#@A~RS`~13l`;tO3;!@W7mOgL@%gEMg#Q19y415buVrHPtlyWnynjpf1 z$J+wH{XEx59n=rgA0~Un6_@ehP=A>-4NPNR@I?UAb;ZL55>*)cYJmY&UB-iCd`|fW z;|ABHAWk(K7OZ_H)j5V5B+OGs27`;x;zqgsPR9{`kxDY&pd@xF#&(a9;mpTmgZpyKd=Hf4Yh?k+uxZ}_#aR)SgQHjap9z?Ts%7luw<-+r6jwr} zz4vXg(%kUW51hj^zf#T&nT>`Qu;FROJTa84;DyP6Gbrv0MasvI2G@)^aP(oAGvbk|lp29;yuzuviCl7J+j@ywMIoxK9-8_UG;31F zPxpYyUH`B_eytk*b*;G-jqLWJ~8x{3TM!i-a`mR-mh&Braj=SUQ*JT_8oiJ4CU8MpeS*H|OZ zc%gEf<^v@e#{&|o_m@(4Ru^1BCCNeNL3h0yPelT6hV4d`en`4`jVs z`WB~>_F^YBtC%CHb8FY;XT$WXM3Ka-B%QRr)5^J-{p5$?d8X|A_T}Z}_4PH^o9XFk zf?k#2rGPh2k+$QTw#Ewg<{BH1EC(LTe4PKExqpQv`v2Fl|Evj*4Z%v7x;p{fM=SuN z5|FKlt5~^d?|BlJ9q1No;HKjw^r~g%i@u5BVYRF%YbZcyjhP{(=h+qDT zSl_a+=@o!ff$$urx9S9lGWSaoE=%BPIBjhk`R@F}+?>@u-7R(JdGBOYP`h-KirR2X z*+o=qI(rB!N-8~uGy{b@1e?_|^k8M;VW;6;PvRxVdu{Ly*f`7@rXDxX&@?&FpLJ6GpMqYbH!f-~h(ww(1Eao82o-jt- z$e&hI5zZFfOArl|O75>PhrI1IzzqX~+IashKwpx4jTRykGxPObz4@Rn ztjC}x-m~awgism|IsMtlUNKJyHCL}9Oin{etbyuV*jmQyu0Wpv{g}&~#N4binMBc6 z3&!r58q3mx;eKtTcoy#m2+d}BQ*JQKCYAWTM+mDm^@Em8%#8nHq0zjks&(eG+tHv8 zgi|s-D&H$tZqXsqk4)&9)O?3$sh+%2E^YU4U?~Kpn=ChoHKwK{nL9~KV>x_EHN8%z zwB^^K8|iQ()*ycE`B*cs#YJgCK-?sU>}z92`oj%!%l7VW11O}9ZIn^^In9r@YU zMZ+J*wE~b4+s7?mF8cYF_T40zb4FQa;8xGa7A0?$8szhh$UcvaQ zAXqBfnc6p*ZubV36yzkA8G>8jMAzz9ptRJNjQ1gzVsk&JUCDXfGWaWklu zI>oW!XqC;SVu+q-Dbb$g?F5YR$;m`PoP&Wy7En3k9024k_~UM%aBozuj+1AZ3@C&L(Z(u-1V`F1$Yin@ElW^Fa zoSfpUQG893xFpuk;I$e(-0yC0^j;$CJ&vRk;bXx~Xad&*8DIWW#Sb|T@E;$TJzbuM zwWf6h{Oy6&-6&r{lK7xN4Fy*%3TW^8qQBNSisSy!G7J*g=>T8MM^^NJoK(UvN#`Pr zY>)Kn5loFKte2}X!_;TE?PP&N{Nw}`UiX}OuJrnuyUNY4?LH@-jz7Cq8x%q!K!&}u z9DYPVf!p(?Pz?oN0KM!mj9E_|=iDoIAesEKmQgUc2BmI;sIW-Jp!y6LTdMPse{8>} zaq-+h=)rgJZ#*7u;=x~7H(h?XzpTuZ1zN0MlGj?&?cwlR&W-NcigIIxsN?2nEOc*# zGLpo)1wKOZ<}x?>PjFGunXZvcw`S>OQR+MVduIHO0$_jsbX4Gksqe$J{$c~jut?^S zf*;4exOS=&J_&l*FAM&F;kQBW#`7_qy=J>yWOBGV+xsanmMp1=v>nm(N3P+fyE2J4 zf?tCEbU0eBQPJV1^$(M0Z}d!p7B1dBeiq$ttN#eQ-)>~~6MG&+GZFEWhcv!n&EZ*P z0_3+BycYl6?#fc;Bu_ArfcxeCg(LUQ28_6H^g}w30Az}*XC*kDs*_pKQD(dq;RT2iB_gJK@4(jJHteoY(b#^d3%=f}<_@}qX|i>;lVj}8wSdAdE$ z_dgyV8ocSQ8qtv{8C2j|F0nMJTG&h{_nqqtXT1;U^H3;un z^s5HI|BW;^}tA%j6k;DDyRpV8DGs z{xg-ZRYl$r)4rXIGf48xK_!26umHv!R_x!j+YEj4<82|1lMJd}QO#jvx#-sK{amiM_sn4+4(6hzKGa@We$Uc{I=2Kkq$4|8UP9x11AGu+ zKk=tMq;{z#Bz13OYIv(j)V>>Gy+i*a?jf+y1ex9=XD?)?`^O}@zSn%de)Nl8{!kqp_5 z)z#TSqGFZl6(&yrj70FhyCuH+7<(gdcaik_bk6;3hS>9(*{O>zg3U*Jj@QET7>a4& zNC=WH9OLfFMghFrPsl(suEdtPUR4xmzIDiTwf<2LC zyYu6bfT)E~mEYIJ_D|r7gPCA@f%|q96kM4<+x9(ga?d?BhqZYGZZcR~stTmIjKAJ_ z8uq9#U6_i8X#kF-10rmjwK1KSO|~=uX+%VRAVmVEWTHAJwY>myyB|=ZkVgU#enYvB zHddcRIQ@B&nP^wj&F@LD; z!PC#v`z7$;farXJz+Ls09oC5&*OpT2<3|Zxx}X;Skh4X@rP4qXkGds2ePB%JHQvLu zmC2T*bzCr9=o7%Er1|?J+KA}9AuicFV4FGM2f!1t8eL~sngJ(gZ4SOeadmT+fh}uu z?^UhR6unlqG!lSgGNANq%kf+WeA=GIiMZD^+0#2!9|=1Z4PK&iy|~9GE#sK$w!v*B zt0O119xoeiP6Oc661T)}OVqAP{`l)j zakim)vm<|?AGXZySvm0~v`&%sBw_wq6(`+9Q?-A)E!HntB_Y@MSNW&Zx zj_F|cR@&%1l*x7L$u4qSipw8U`s|F1^;b5o6w($e)@lb8n(n~l+8ay`u-t7$Im1$s zxv+ZthPlsO-roRyh$ zSpiny4O1V+g_8Y>*oW+u8R9engBcx6#f3IRk|eE+*Kv5Ob2@mRwSH3vAGv)*VHuX( z$gGizz4~#?;pSM9b%RVqWqOdVBLVI8H9lo~BPw6$P~%Ku_iW6Rf~ zfHb2!a?1kVv^?PI3-?sk6ovVS^PP0h6ugGwwBrdw@C=^vL}!Zfkatuqn1CmA>{=^Iky@L>OGVqAgxbfbQ1-u|zsgXpr}`$Hm6!@O6KsthgYpb3m*gHj*CcG7 ztZl3hU|hj(l>S7$NtYAU!+ar?6e2c*q9?s4%WbnbBod%#S2Z@u9Ixeq4s05NAL~P9 zcP8>pn@go0Uwc|>m+2r_({fZvF{YCv%0GpLDtlsdG%G?nK69v5m=2iKz5;bo$T0C1 zGUhg*8d6}=Vd92$y3L*j`$V~ZZu#75+bWi8CJ3dIFP<)`&XHfr%0GH8q&PrfJ{G== ztc{Ob!HI3N*UHMkN*1q6cy%JQS?s!?RUTpRRS`#w(PC^@jlnTfG_gG!xj#C=CSU2+ z;dv%m$34(_Qv&3SGMrs%5n#1Yv>#bL{>C##6HtOw%6yj)ay3@`YJH?aLiVc;+Jafe z^pspGG-#YYs=ZiZC6g={?5*&88B$hOzR^2fY-nq^116me4gN(SzglYA=@kt)z+{R~ zXw+M5k<_6O_99B%qF~Fm+@4=0Q&goUzkwr*r_Eq@v98!oHB#b-%3(m<*^5>|PtG^O ztM%p$Ki$yYWJ28ILbpSTS9bLqn%83ujL0H&Q!E{4mGNzg)pvt_7lQ$y7fcrZXN*v% z;82A4NVLDyBiRvvu0(aLJf~Ez-#S<2Z3gb))(E-27Fr5)E7?qS{=yN&0_a;iWVTE% zVvqA*&)az{sHh)>vdoKt?3QrV{^fC*lPC2LJQaNb^N94GyA~;eHrcVmIGAfG0!?zK jO@Q3<5~T9JLnHha#LF6IvhSOK^903GRM}Wbgf* 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 k<{9 literal 0 HcmV?d00001 diff --git a/bsp/renesas/ra6m3-ek/docs/picture/lvgl/16.png b/bsp/renesas/ra6m3-ek/docs/picture/lvgl/16.png new file mode 100644 index 0000000000000000000000000000000000000000..2a11ac9060bfef18624be4c9b2a87faa12560fdf GIT binary patch literal 4849 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 MIW^fT={JG@1KK4CHUIzs literal 0 HcmV?d00001