Skip to content

Commit

Permalink
docs(gpu): add docs for arm-2d (lvgl#3456)
Browse files Browse the repository at this point in the history
  • Loading branch information
GorgonMeducer authored Jul 7, 2022
1 parent 97b6b35 commit 8d3d850
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 13 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ Just to mention some platforms:
- Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
- [Linux frame buffer](https://blog.lvgl.io/2018-01-03/linux_fb) (/dev/fb)
- [Raspberry Pi](https://github.com/lvgl/lv_port_linux_frame_buffer)
- [Raspberry Pi Pico](https://github.com/lvgl/lv_port_raspberry_pi_pico_mdk)
- [Espressif ESP32](https://github.com/lvgl/lv_port_esp32)
- [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
- Nordic NRF52 Bluetooth modules
Expand All @@ -114,6 +115,7 @@ LVGL is also available as:
- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
- [NuttX library](https://docs.lvgl.io/master/get-started/os/nuttx.html)
- [RT-Thread RTOS](https://docs.lvgl.io/master/get-started/os/rt-thread.html)
- CMSIS-Pack


## Get started
Expand Down
2 changes: 1 addition & 1 deletion docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- **inherit and initial style properties** Besides setting "normal values" for style properties now you can set them to `inherit` (inherit the parent's value) and `initial` (set the system default). See more [here](https://docs.lvgl.io/master/overview/style.html#forced-value-inheritance-default-value)
- **NXP-PXP and VGLITE GPU support** The support for NXP GPUs are added again
- **Color font support** You can use emojis and images in texts with this great new features. See more [here](https://docs.lvgl.io/master/others/imgfont.html).
- **ARM2D GPU support** Get support for ARM's own GPU.
- **ARM2D GPU support** Get support for Arm's Microcontroller 2D Graphics Acceleration, e.g. Helium based acceleration, DMA-350 based acceleration etc.
- **PubSub messaging** A publisher-subscriber based messaging system is added to make communication between components easier. See more [here](https://docs.lvgl.io/master/others/msg.html).
- **Pinyin IME** Add support for Pinyin IME Chinese input. See more [here](https://docs.lvgl.io/master/others/ime_pinyin.html).
- **render_start_cb** A new callback is added to `lv_disp_drv_t` to indicate when the rendering starts. It's useful to make synchronization, e.g. wait for a TE signal.
Expand Down
1 change: 1 addition & 0 deletions docs/get-started/platforms/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
arduino
tasmota-berry
cmake
mdk
```

4 changes: 4 additions & 0 deletions docs/get-started/platforms/mdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

# MDK

TODO
21 changes: 11 additions & 10 deletions docs/intro/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,15 +98,16 @@ The changes are recorded in [CHANGELOG.md](/CHANGELOG).
Before v8 the last minor release of each major series was supported for 1 year.
Starting from v8, every minor release is supported for 1 year.

| Version | Release date | Support end | Active |
|---------|--------------|-------------|--------|
| v5.3 | Feb 1, 2019 |Feb 1, 2020 | No |
| v6.1 | Nov 26, 2019 |Nov 26, 2020 | No |
| v7.11 | Mar 16, 2021 |Mar 16, 2022 | No |
| v8.0 | 1 Jun, 2021 |1 Jun, 2022 | Yes |
| v8.1 | 10 Nov, 2021 |10 Nov, 2022 | Yes |
| v8.2 | 31 Jan, 2022 |31 Jan, 2023 | Yes |
| v8.3 | In progress | | |
| Version | Release date | Support end | Active |
| ------- | ------------ | ------------ | ------ |
| v5.3 | Feb 1, 2019 | Feb 1, 2020 | No |
| v6.1 | Nov 26, 2019 | Nov 26, 2020 | No |
| v7.11 | Mar 16, 2021 | Mar 16, 2022 | No |
| v8.0 | 1 Jun, 2021 | 1 Jun, 2022 | No |
| v8.1 | 10 Nov, 2021 | 10 Nov, 2022 | Yes |
| v8.2 | 31 Jan, 2022 | 31 Jan, 2023 | Yes |
| v8.3 | 6 July, 2022 | 6 July, 2023 | Yes |
| v9.0 | In progress | | |

## FAQ

Expand All @@ -123,7 +124,7 @@ Every MCU which is capable of driving a display via parallel port, SPI, RGB inte

This includes:
- "Common" MCUs like STM32F, STM32H, NXP Kinetis, LPC, iMX, dsPIC33, PIC32, SWM341 etc.
- Bluetooth, GSM, Wi-Fi modules like Nordic NRF and Espressif ESP32
- Bluetooth, GSM, Wi-Fi modules like Nordic NRF, Espressif ESP32 and Raspberry Pi Pico W
- Linux with frame buffer device such as /dev/fb0. This includes Single-board computers like the Raspberry Pi
- Anything else with a strong enough MCU and a peripheral to drive a display

Expand Down
32 changes: 30 additions & 2 deletions docs/overview/renderers/arm-2d.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,32 @@
# ARM-2D GPU
# Arm-2D GPU

TODO
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 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 `LV_USE_GPU_ARM2D` to `1`in `lv_conf.h` to enable Arm-2D 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 `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.



## Design Considerations

As mentioned before, Arm-2D is an abstraction layer for 2D GPU; hence if there is no accelerator or dedicated instruction set (such as Helium or ACI) available for Arm-2D, it provides negligible performance boost for 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 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.
- 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)



## Examples

- [A Cortex-M55 (supports Helium) based MDK Project, PC emulation is available.](https://github.com/lvgl/lv_port_an547_cm55_sim)

0 comments on commit 8d3d850

Please sign in to comment.