From b78a4de8984e7e9b76ec4fc0e437fc952435f433 Mon Sep 17 00:00:00 2001 From: Fabian Blatz Date: Wed, 21 Aug 2024 11:46:40 +0200 Subject: [PATCH] chore(docs): update Zephyr documentation (#6581) --- docs/integration/os/zephyr.rst | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/integration/os/zephyr.rst b/docs/integration/os/zephyr.rst index cdc3c7f47..f94367d25 100644 --- a/docs/integration/os/zephyr.rst +++ b/docs/integration/os/zephyr.rst @@ -106,6 +106,7 @@ The pseudo device binding descriptions can be found at: - `button input `__ - `pointer input `__ - `encoder input `__ +- `keypad input `__ Essentially those buffer the :code:`input_event` generated by the device pointed to by the :code:`input` phandle or if left empty the binding captures all events regardless of the source. You do not have to instantiate or manage the devices yourself, @@ -157,6 +158,31 @@ Overlays can be used to enable/disable features for specific boards or build targets. For more information refer to the `application development guide `__. +Performance Tuning in LVGL +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To optimize LVGL's performance, several `kconfig` options can be configured: + +- **CONFIG_LV_Z_VDB_SIZE**: Sets the rendering buffer size as a percentage of the display area, adjustable from 1% to 100%. Larger buffers can enhance performance, especially when used with **CONFIG_LV_Z_FULL_REFRESH**. + +- **CONFIG_LV_Z_DOUBLE_VDB**: Enables the use of two rendering buffers, allowing for parallel rendering and data flushing, thus improving responsiveness and reducing latency. + +- **CONFIG_LV_Z_VDB_ALIGN**: Ensures that the rendering buffer is properly aligned, which is critical for efficient memory access based on the color depth. + +- **CONFIG_LV_Z_VBD_CUSTOM_SECTION**: Allows rendering buffers to be placed in a custom memory section (e.g., `.lvgl_buf`), useful for leveraging specific memory types like tightly coupled or external memory to enhance performance. + +Zephyr ≤ 3.7.0 Specific Options +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For Zephyr versions 3.7.0 and below, additional options are available to manage LVGL's frame flushing: + +- **CONFIG_LV_Z_FLUSH_THREAD**: Enables flushing LVGL frames in a separate thread, allowing the main thread to continue rendering the next frame simultaneously. This option can be disabled if the performance gain is not needed. + + - **CONFIG_LV_Z_FLUSH_THREAD_STACK_SIZE**: Specifies the stack size for the flush thread, with a default of 1024 bytes. + + - **CONFIG_LV_Z_FLUSH_THREAD_PRIO**: Sets the priority of the flush thread, with a default priority of 0, indicating cooperative priority. + +For newer versions of Zephyr, the OSAL (Operating System Abstraction Layer) can be utilized, which takes care of the flushing. Where can I find more information? ----------------------------------