chore(cmsis-pack): prepare for LVGL9 release (#5323)

Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
This commit is contained in:
Gabriel Wang
2024-01-15 18:50:03 +00:00
committed by GitHub
parent f1739b864c
commit 78a6b2f425
23 changed files with 318 additions and 110 deletions

View File

@@ -310,7 +310,7 @@ menu "LVGL configuration"
endmenu
menu "GPU"
config LV_USE_DRAW_ARM2D
config LV_USE_DRAW_ARM2D_SYNC
bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors."
default n
help

View File

@@ -1,7 +1,3 @@
**IMPORTANT NOTE** The next major version (v9.0.0) is developed in the master branch.
The last stable version is available in the [release/v8.3](https://github.com/lvgl/lvgl/tree/release/v8.3) branch.
---
<a href="https://github.com/sponsors/lvgl" target="_blank"><img align="left" src="https://lvgl.io/assets/images/sponsor.png" height="32px"></a>

View File

@@ -558,6 +558,14 @@ static void summary_create(void)
lv_table_set_cell_value(table, 0, 2, "Avg. FPS");
lv_table_set_cell_value(table, 0, 3, "Avg. time (render + flush)");
/* csv log */
LV_LOG("Benchmark Summary (%"LV_PRIu32".%"LV_PRIu32".%"LV_PRIu32" %s)\r\n",
LVGL_VERSION_MAJOR,
LVGL_VERSION_MINOR,
LVGL_VERSION_PATCH,
LVGL_VERSION_INFO);
LV_LOG("Name, Avg. CPU, Avg. FPS, Avg. time, render time, flush time\r\n");
lv_obj_update_layout(table);
int32_t col_w = lv_obj_get_content_width(table) / 4;
@@ -591,6 +599,15 @@ static void summary_create(void)
lv_table_set_cell_value_fmt(table, i + 2, 3, "%"LV_PRIu32" ms (%"LV_PRIu32" + %"LV_PRIu32")",
render_time + flush_time, render_time, flush_time);
/* csv log */
LV_LOG("%s, %"LV_PRIu32"%%, %"LV_PRIu32", %"LV_PRIu32", %"LV_PRIu32", %"LV_PRIu32"\r\n",
scenes[i].name,
scenes[i].cpu_avg_usage / cnt,
scenes[i].fps_avg / cnt,
render_time + flush_time,
render_time,
flush_time);
valid_scene_cnt++;
total_avg_cpu += scenes[i].cpu_avg_usage / cnt;
total_avg_fps += scenes[i].fps_avg / cnt;
@@ -614,6 +631,13 @@ static void summary_create(void)
uint32_t flush_time = total_avg_flush_time / valid_scene_cnt;
lv_table_set_cell_value_fmt(table, 1, 3, "%"LV_PRIu32" ms (%"LV_PRIu32" + %"LV_PRIu32")",
render_time + flush_time, render_time, flush_time);
/* csv log */
LV_LOG("All scenes avg.,%"LV_PRIu32"%%, %"LV_PRIu32", %"LV_PRIu32", %"LV_PRIu32", %"LV_PRIu32"\r\n",
total_avg_cpu / valid_scene_cnt,
total_avg_fps / valid_scene_cnt,
render_time + flush_time,
render_time,
flush_time);
}
}

View File

@@ -6,20 +6,31 @@ Arm-2D is not a GPU but **an abstraction layer for 2D GPUs dedicated to
Microcontrollers**. It supports all Cortex-M processors ranging from
Cortex-M0 to the latest Cortex-M85.
Arm-2D accelerates LVGL9 with too modes: **Synchronous Mode** and
**Asynchronous Mode**.
- When **Helium** and **ACI (Arm Custom Instruction)** are available, it is recommend
to use **Synchronous Mode** to accelerate LVGL.
- When Arm-2D backed 2D-GPUs are available, for example, **DMAC-350 based 2D
GPUs**, it is recommend to use **Asynchronous Mode** to accelerate LVGL.
Arm-2D is an open-source project on Github. For more, please refer to:
https://github.com/ARM-software/Arm-2D.
How to Use
**********
In general, you can set the macro :c:macro:`LV_USE_GPU_ARM2D` to ``1`` in
``lv_conf.h`` to enable Arm-2D acceleration for LVGL.
In general:
- you can set the macro :c:macro:`LV_USE_DRAW_ARM2D_SYNC` to ``1`` in
``lv_conf.h`` to enable Arm-2D synchronous acceleration for LVGL.
- You can set
the macro :c:macro:`LV_USE_DRAW_ARM2D_ASYNC` to ``1`` in ``lv_conf.h`` to enable
Arm-2D Asynchronous acceleration for LVGL.
If you are using
`CMSIS-Pack <https://github.com/lvgl/lvgl/tree/master/env_support/cmsis-pack>`__
to deploy the LVGL. You don't have to define the macro
:c:macro:`LV_USE_GPU_ARM2D` manually, instead, please select the component
``GPU Arm-2D`` in the **RTE** dialog. This step will define the macro for us.
:c:macro:`LV_USE_DRAW_ARM2D_SYNC` manually, instead the lv_conf_cmsis.h will
check the environment and set the :c:macro:`LV_USE_DRAW_ARM2D_SYNC` accordingly.
Design Considerations
*********************
@@ -31,13 +42,13 @@ LVGL (sometimes worse) for regular Cortex-M processors.
**We highly recommend you enable Arm-2D acceleration for LVGL** when:
- The target processors are **Cortex-M55** and/or **Cortex-M85**
- The target processors are **Cortex-M55**, **Cortex-M52** and **Cortex-M85**
- The target processors support
`Helium <https://developer.arm.com/documentation/102102/0103/?lang=en>`__.
- The device vendor provides an arm-2d compliant driver for their
propriotory 2D accelerators and/or customized instruction set.
propriotory 2D accelerators and/or ACI(Arm Customized Instruction).
- The target device contains
`DMA-350 <https://community.arm.com/arm-community-blogs/b/internet-of-things-blog/posts/arm-corelink-dma-350-next-generation-direct-memory-access-for-endpoint-ai>`__
`DMAC-350 <https://community.arm.com/arm-community-blogs/b/internet-of-things-blog/posts/arm-corelink-dma-350-next-generation-direct-memory-access-for-endpoint-ai>`__
Examples
********

View File

@@ -36,11 +36,13 @@
<repository type="git">https://github.com/lvgl/lvgl.git</repository>
<releases>
<release date="2024-01-13" version="9.0.0-dev4" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.9.0.0-dev4.pack">
- LVGL 9.0.0-dev
- New Driver Architecture
<release date="2024-01-15" version="9.0.0-rc" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.9.0.0-rc.pack">
- LVGL 9.0.0-rc
- Implements a New Render Architecture that enables parallel processing
- Accelerates SW-Render with NEON and Helium technology for Cortex architectures.
- Adds supports for GPUs: VG-Lite, PXP and Dave2D
- Adds supports for GPUs: VG-Lite, PXP, Dave2D and etc.
- Adds display drivers
- Adds Demos for benchmarks, render test etc,
- Other fixes
</release>
<release date="2023-12-05" version="8.3.11" url="https://github.com/lvgl/lvgl/raw/8194d83226c27c84f12dd51e16f5add9939215a5/env_support/cmsis-pack/LVGL.lvgl.8.3.11.pack">
@@ -79,10 +81,6 @@
- Rework stm32 DMA2D support
- Various fixes
</release>
<release date="2023-01-15" version="1.1.0-alpha" url="https://github.com/lvgl/lvgl/raw/4e3f341b882e0453d3da5cce6bb1b6357e52e3e7/env_support/cmsis-pack/LVGL.lvgl.1.1.0-alpha.pack">
- LVGL 9.0.0-dev
- Monthly update for January
</release>
<release date="2022-12-31" version="1.0.12" url="https://github.com/lvgl/lvgl/raw/7d0de1aabeabd4c71231895df7a503a3313b4619/env_support/cmsis-pack/LVGL.lvgl.1.0.12.pack">
- LVGL 9.0.0-dev
- The final update for 2022, Happy New Year
@@ -269,7 +267,7 @@
<condition id="LVGL-Essential-Assets">
<description>Require LVGL Essential Service and Demo Assets </description>
<require Cclass="LVGL" Cgroup="Essential" />
<require condition="LVGL-Essential"/>
<require Cclass="LVGL" Cgroup="Demos" Csub="Assets" />
</condition>
@@ -279,67 +277,73 @@
</condition>
<condition id="LVGL-GPU-STM32-DMA2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="LVGL9" Csub="Essential"/>
<description>Condition for STM32-DMA2D</description>
<require condition="LVGL-Essential"/>
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU STM32-DMA2D"/>-->
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU VG-Lite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU Renesas-Dave2D"/>
</condition>
<condition id="LVGL-GPU-SWM341-DMA2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="LVGL9" Csub="Essential"/>
<description>Condition for SWM341-DMA2D</description>
<require condition="LVGL-Essential"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU STM32-DMA2D"/>
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU SWM341-DMA2D"/>-->
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU VG-Lite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU Renesas-Dave2D"/>
</condition>
<condition id="LVGL-GPU-NXP-PXP">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="LVGL9" Csub="Essential"/>
<description>Condition for NXP-PXP</description>
<require condition="LVGL-Essential"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU SWM341-DMA2D"/>
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-PXP"/>-->
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-VGLite"/>-->
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU VG-Lite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU Renesas-Dave2D"/>
</condition>
<condition id="LVGL-GPU-NXP-VGLite">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="LVGL9" Csub="Essential"/>
<description>Condition for NXP-VGLite</description>
<require condition="LVGL-Essential"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU SWM341-DMA2D"/>
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-PXP"/>-->
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-VGLite"/>-->
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU VG-Lite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU Renesas-Dave2D"/>
</condition>
<condition id="LVGL-GPU-GD32-IPA">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="LVGL9" Csub="Essential"/>
<description>Condition for GD32-IPA</description>
<require condition="LVGL-Essential"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU VG-Lite"/>
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU GD32-IPA"/>-->
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU Renesas-Dave2D"/>
</condition>
<condition id="LVGL-GPU-Renesas-Dave2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="LVGL9" Csub="Essential"/>
<description>Condition for Renesas-Dave2D</description>
<require condition="LVGL-Essential"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU VG-Lite"/>
<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU GD32-IPA"/>
<!--<deny Cclass="LVGL" Cgroup="LVGL9" Csub="GPU Renesas-Dave2D"/>-->
</condition>
@@ -614,7 +618,7 @@
<file category="sourceC" name="src/osal/lv_os_none.c"/>
<!-- general -->
<file category="preIncludeGlobal" name="lv_conf_cmsis.h" attr="config" version="2.1.2" />
<file category="preIncludeGlobal" name="lv_conf_cmsis.h" attr="config" version="2.1.3" />
<file category="sourceC" name="lv_cmsis_pack.c" />
<file category="header" name="lvgl.h" />
<file category="doc" name="README.md"/>
@@ -643,6 +647,20 @@
</component>
<component Cgroup="Display" Cvariant="Windows Backend" condition="LVGL-Essential">
<description>Add the display driver for Windows backend </description>
<files>
<file category="sourceC" name="src/dev/windows/lv_windows_context.c" />
<file category="sourceC" name="src/dev/windows/lv_windows_display.c" />
<file category="sourceC" name="src/dev/windows/lv_windows_input.c" />
</files>
<RTE_Components_h>
/* use display driver for Windows backend*/ */
#define LV_USE_WINDOWS 1
</RTE_Components_h>
</component>
<component Cgroup="Display" Cvariant="Linux DRM" condition="LVGL-Essential">
<description>Add the display driver for Linux /dev/dri/card*/ </description>
@@ -961,6 +979,36 @@
</component>
<component Cgroup="Acceleration" Csub="GPU VG-Lite">
<description>An hardware acceleration from VG-Lite GPU</description>
<files>
<file category="sourceC" name="src/draw/vg_lite/lv_draw_buf_vg_lite.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_arc.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_border.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_box_shadow.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_fill.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_img.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_label.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_layer.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_line.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_mask_rect.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_triangle.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_draw_vg_lite_vector.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_vg_lite_decoder.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_vg_lite_math.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_vg_lite_path.c" />
<file category="sourceC" name="src/draw/vg_lite/lv_vg_lite_utils.c" />
</files>
<RTE_Components_h>
/*! \brief enable VG-Lite GPU */
#define LV_USE_DRAW_VG_LITE 1
</RTE_Components_h>
</component>
<component Cgroup="Acceleration" Csub="GPU SDL2" Cversion="2.0.0">
<description>Using existing SDL2 APIs for acceleration</description>
<files>

View File

@@ -2,8 +2,8 @@
<index schemaVersion="1.0.0" xs:noNamespaceSchemaLocation="PackIndex.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<vendor>LVGL</vendor>
<url>https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/</url>
<timestamp>2024-01-13</timestamp>
<timestamp>2024-01-15</timestamp>
<pindex>
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="9.0.0-dev4"/>
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="9.0.0-rc"/>
</pindex>
</index>

View File

@@ -73,6 +73,8 @@ remove the misleading guide above this code segment.
- LV_USE_DRAW_VGLITE
- LV_USE_DRAW_VG_LITE
- LV_USE_DRAW_PXP
- LV_USE_DRAW_SDL
@@ -115,7 +117,7 @@ remove the misleading guide above this code segment.
#define LV_DRAW_BUF_STRIDE_ALIGN 4
#define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4)))
```
Make sure `LV_MEM_SIZE` is no less than `(256*1024U)`.
Make sure `LV_MEM_SIZE` is no less than `(96*1024U)`.
8. Remove following macro definitions in the `3rd party libraries` section:
@@ -207,9 +209,15 @@ with:
#endif
```
13. Update macro `LV_PROFILER_INCLUDE`:
```c
#define LV_PROFILER_INCLUDE "src/misc/lv_profiler_builtin.h"
```
13. rename '**lv_conf_template.h**' to '**lv_conf_cmsis.h**'.
14. rename '**lv_conf_template.h**' to '**lv_conf_cmsis.h**'.

View File

@@ -1,6 +1,6 @@
/**
* @file lv_conf.h
* Configuration file for v9.0.0-dev
* Configuration file for v9.0.0
*/
/* clang-format off */
@@ -36,7 +36,7 @@
#if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN
/*Size of the memory available for `lv_malloc()` in bytes (>= 2kB)*/
#define LV_MEM_SIZE (256 * 1024U) /*[bytes]*/
#define LV_MEM_SIZE (96 * 1024U) /*[bytes]*/
/*Size of the memory expand for `lv_malloc()` in bytes*/
#define LV_MEM_POOL_EXPAND_SIZE 0
@@ -125,7 +125,7 @@
/*turn-on helium acceleration when Arm-2D and the Helium-powered device are detected */
#if defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE
#define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_HELIUM
#define LV_USE_DRAW_ARM2D 1
#define LV_USE_DRAW_ARM2D_SYNC 1
#endif
#endif
@@ -156,6 +156,18 @@
#define LV_USE_PXP_ASSERT 0
#endif
/* Use VG-Lite GPU. */
#define LV_USE_DRAW_VG_LITE 0
#if LV_USE_DRAW_VG_LITE
/* Enable VG-Lite custom external 'gpu_init()' function */
#define LV_VG_LITE_USE_GPU_INIT 0
/* Enable VG-Lite assert. */
#define LV_VG_LITE_USE_ASSERT 0
#endif
/*=======================
* FEATURE CONFIGURATION
*=======================*/
@@ -233,28 +245,6 @@
*For layers add the index number of the draw unit on black background.*/
#define LV_USE_PARALLEL_DRAW_DEBUG 0
/*------------------
* STATUS MONITORING
*------------------*/
/*1: Show CPU usage and FPS count
* Requires `LV_USE_SYSMON = 1`*/
#define LV_USE_PERF_MONITOR 0
#if LV_USE_PERF_MONITOR
#define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
/*0: Displays performance data on the screen, 1: Prints performance data using log.*/
#define LV_USE_PERF_MONITOR_LOG_MODE 0
#endif
/*1: Show the used memory and the memory fragmentation
* Requires `LV_USE_BUILTIN_MALLOC = 1`
* Requires `LV_USE_SYSMON = 1`*/
#define LV_USE_MEM_MONITOR 0
#if LV_USE_MEM_MONITOR
#define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
#endif
/*-------------
* Others
*-----------*/
@@ -671,9 +661,30 @@
* OTHERS
*==================*/
/*1: Enable system monitor component*/
#define LV_USE_SYSMON (LV_USE_MEM_MONITOR | LV_USE_PERF_MONITOR)
#define LV_USE_SYSMON 0
#if LV_USE_SYSMON
/*1: Show CPU usage and FPS count
* Requires `LV_USE_SYSMON = 1`*/
#define LV_USE_PERF_MONITOR 0
#if LV_USE_PERF_MONITOR
#define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
/*0: Displays performance data on the screen, 1: Prints performance data using log.*/
#define LV_USE_PERF_MONITOR_LOG_MODE 0
#endif
/*1: Show the used memory and the memory fragmentation
* Requires `LV_USE_BUILTIN_MALLOC = 1`
* Requires `LV_USE_SYSMON = 1`*/
#define LV_USE_MEM_MONITOR 0
#if LV_USE_MEM_MONITOR
#define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
#endif
#endif /*LV_USE_SYSMON*/
/*1: Enable the runtime performance profiler*/
#define LV_USE_PROFILER 0
@@ -686,7 +697,7 @@
#endif
/*Header to include for the profiler*/
#define LV_PROFILER_INCLUDE "lvgl/src/misc/lv_profiler_builtin.h"
#define LV_PROFILER_INCLUDE "src/misc/lv_profiler_builtin.h"
/*Profiler start point function*/
#define LV_PROFILER_BEGIN LV_PROFILER_BUILTIN_BEGIN

View File

@@ -1,6 +1,6 @@
{
"name": "lvgl",
"version": "9.0.0-dev",
"version": "9.0.0-rc",
"keywords": "graphics, gui, embedded, tft, lvgl",
"description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.",
"repository": {

View File

@@ -1,5 +1,5 @@
name=lvgl
version=9.0.0-dev
version=9.0.0-rc
author=kisvegabor
maintainer=kisvegabor,embeddedt,pete-pjb
sentence=Full-featured Graphics Library for Embedded Systems

View File

@@ -1,6 +1,6 @@
/**
* @file lv_conf.h
* Configuration file for v9.0.0-dev
* Configuration file for v9.0.0-rc
*/
/*
@@ -101,13 +101,16 @@
* > 1 means multiply threads will render the screen in parallel */
#define LV_DRAW_SW_DRAW_UNIT_CNT 1
/* Use Arm-2D to accelerate the sw render */
#define LV_USE_DRAW_ARM2D_SYNC 0
/* If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode
* it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks.
* "Transformed layers" (if `transform_angle/zoom` are set) use larger buffers
* and can't be drawn in chunks. */
/*The target buffer size for simple layer chunks.*/
#define LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /*[bytes]*/
#define LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /*[bytes]*/
/* 0: use a simple renderer capable of drawing only simple rectangles with gradient, images, texts, and straight lines only
* 1: use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too */
@@ -133,9 +136,6 @@
#endif
#endif
/* Use Arm-2D on Cortex-M based devices. Please only enable it for Helium Powered devices for now */
#define LV_USE_DRAW_ARM2D 0
/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
#define LV_USE_DRAW_VGLITE 0

2
lvgl.h
View File

@@ -16,7 +16,7 @@ extern "C" {
#define LVGL_VERSION_MAJOR 9
#define LVGL_VERSION_MINOR 0
#define LVGL_VERSION_PATCH 0
#define LVGL_VERSION_INFO "dev"
#define LVGL_VERSION_INFO "rc"
/*********************
* INCLUDES

View File

@@ -1,10 +1,10 @@
/**
* @file lv_draw_sw_helium.h
* @file lv_draw_sw_arm2d.h
*
*/
#ifndef LV_DRAW_SW_HELIUM_H
#define LV_DRAW_SW_HELIUM_H
#ifndef LV_DRAW_SW_ARM2D_H
#define LV_DRAW_SW_ARM2D_H
#ifdef __cplusplus
extern "C" {
@@ -18,11 +18,7 @@ extern "C" {
#include "../../../lv_conf_internal.h"
#ifdef LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#include LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#endif
#if LV_USE_DRAW_ARM2D
#if LV_USE_DRAW_ARM2D_SYNC
#define __ARM_2D_IMPL__
#include "arm_2d.h"
@@ -250,7 +246,7 @@ static inline lv_result_t _lv_draw_sw_image_helium(
// layer,
// blend_area.x1 - layer->buf_area.x1,
// blend_area.y1 - layer->buf_area.y1);
uint8_t *des_buf = (uint8_t *)layer->buf;
uint8_t *des_buf = (uint8_t *)lv_draw_layer_go_to_xy(layer, 0, 0);
uint8_t opa = draw_dsc->opa;
/* ------------- prepare parameters for arm-2d APIs - END ----------- */
@@ -557,7 +553,7 @@ static inline lv_result_t _lv_draw_sw_image_recolor_rgb888(
return LV_RESULT_OK;
}
#endif /* LV_USE_DRAW_ARM2D */
#endif /* LV_USE_DRAW_ARM2D_SYNC */
/* *INDENT-ON* */
@@ -565,4 +561,4 @@ static inline lv_result_t _lv_draw_sw_image_recolor_rgb888(
} /*extern "C"*/
#endif
#endif /*LV_DRAW_SW_HELIUM_H*/
#endif /*LV_DRAW_SW_ARM2D_H */

View File

@@ -0,0 +1,60 @@
/**
* @file lv_draw_sw_helium.h
*
*/
#ifndef LV_DRAW_SW_HELIUM_H
#define LV_DRAW_SW_HELIUM_H
#ifdef __cplusplus
extern "C" {
#endif
/* *INDENT-OFF* */
/*********************
* INCLUDES
*********************/
#include "../../../lv_conf_internal.h"
/* detect whether helium is available based on arm compilers' standard */
#if defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE
#ifdef LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#include LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#endif
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/*********************
* POST INCLUDES
*********************/
/* use arm-2d as the default helium acceleration */
#include "lv_draw_sw_arm2d.h"
#endif /* defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE */
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*LV_DRAW_SW_HELIUM_H*/

View File

@@ -1,10 +1,10 @@
/**
* @file lv_blend_to_helium.h
* @file lv_blend_arm2d.h
*
*/
#ifndef LV_BLEND_TO_HELIUM_H
#define LV_BLEND_TO_HELIUM_H
#ifndef LV_BLEND_ARM2D_H
#define LV_BLEND_ARM2D_H
#ifdef __cplusplus
extern "C" {
@@ -16,11 +16,7 @@ extern "C" {
#include "../../../../lv_conf_internal.h"
#ifdef LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#include LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#endif
#if LV_USE_DRAW_ARM2D
#if LV_USE_DRAW_ARM2D_SYNC
#define __ARM_2D_IMPL__
#include "arm_2d.h"
@@ -1436,10 +1432,10 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_hel
* MACROS
**********************/
#endif /* LV_USE_DRAW_ARM2D */
#endif /* LV_USE_DRAW_ARM2D_SYNC */
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*LV_BLEND_TO_HELIUM_H*/
#endif /*LV_BLEND_ARM2D_H*/

View File

@@ -0,0 +1,58 @@
/**
* @file lv_blend_arm2d.h
*
*/
#ifndef LV_BLEND_HELIUM_H
#define LV_BLEND_HELIUM_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#include "../../../../lv_conf_internal.h"
/* detect whether helium is available based on arm compilers' standard */
#if defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE
#ifdef LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#include LV_DRAW_SW_HELIUM_CUSTOM_INCLUDE
#endif
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/*********************
* POST INCLUDES
*********************/
/* use arm-2d as the default helium acceleration */
#include "lv_blend_arm2d.h"
#endif /* defined(__ARM_FEATURE_MVE) && __ARM_FEATURE_MVE */
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*LV_BLEND_HELIUM_H*/

View File

@@ -19,7 +19,7 @@
#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
#include "neon/lv_blend_neon.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
#include "helium/lv_blend_helium.h"
#include "arm2d/lv_blend_helium.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM
#include LV_DRAW_SW_ASM_CUSTOM_INCLUDE
#endif

View File

@@ -19,7 +19,7 @@
#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
#include "neon/lv_blend_neon.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
#include "helium/lv_blend_helium.h"
#include "arm2d/lv_blend_helium.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM
#include LV_DRAW_SW_ASM_CUSTOM_INCLUDE
#endif

View File

@@ -19,7 +19,7 @@
#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
#include "neon/lv_blend_neon.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
#include "helium/lv_blend_helium.h"
#include "arm2d/lv_blend_helium.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM
#include LV_DRAW_SW_ASM_CUSTOM_INCLUDE
#endif

View File

@@ -24,7 +24,7 @@
#endif
#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
#include "helium/lv_draw_sw_helium.h"
#include "arm2d/lv_draw_sw_helium.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM
#include LV_DRAW_SW_ASM_CUSTOM_INCLUDE
#endif

View File

@@ -20,7 +20,7 @@
#include "../../core/lv_global.h"
#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
#include "helium/lv_draw_sw_helium.h"
#include "arm2d/lv_draw_sw_helium.h"
#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM
#include LV_DRAW_SW_ASM_CUSTOM_INCLUDE
#endif

View File

@@ -271,6 +271,15 @@
#endif
#endif
/* Use Arm-2D to accelerate the sw render */
#ifndef LV_USE_DRAW_ARM2D_SYNC
#ifdef CONFIG_LV_USE_DRAW_ARM2D_SYNC
#define LV_USE_DRAW_ARM2D_SYNC CONFIG_LV_USE_DRAW_ARM2D_SYNC
#else
#define LV_USE_DRAW_ARM2D_SYNC 0
#endif
#endif
/* If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode
* it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks.
* "Transformed layers" (if `transform_angle/zoom` are set) use larger buffers
@@ -281,7 +290,7 @@
#ifdef CONFIG_LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE
#define LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE CONFIG_LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE
#else
#define LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /*[bytes]*/
#define LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /*[bytes]*/
#endif
#endif
@@ -343,15 +352,6 @@
#endif
#endif
/* Use Arm-2D on Cortex-M based devices. Please only enable it for Helium Powered devices for now */
#ifndef LV_USE_DRAW_ARM2D
#ifdef CONFIG_LV_USE_DRAW_ARM2D
#define LV_USE_DRAW_ARM2D CONFIG_LV_USE_DRAW_ARM2D
#else
#define LV_USE_DRAW_ARM2D 0
#endif
#endif
/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
#ifndef LV_USE_DRAW_VGLITE
#ifdef CONFIG_LV_USE_DRAW_VGLITE