summaryrefslogtreecommitdiff
path: root/lib/lvgl/docs/get-started/os
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lvgl/docs/get-started/os')
m---------lib/lvgl0
-rw-r--r--lib/lvgl/docs/get-started/os/freertos.md3
-rw-r--r--lib/lvgl/docs/get-started/os/index.md13
-rw-r--r--lib/lvgl/docs/get-started/os/nuttx.md97
-rw-r--r--lib/lvgl/docs/get-started/os/rt-thread.md48
-rw-r--r--lib/lvgl/docs/get-started/os/zephyr.md3
6 files changed, 164 insertions, 0 deletions
diff --git a/lib/lvgl b/lib/lvgl
deleted file mode 160000
-Subproject 0732400e7b564dd0e7dc4a924619d8e19c5b23a
diff --git a/lib/lvgl/docs/get-started/os/freertos.md b/lib/lvgl/docs/get-started/os/freertos.md
new file mode 100644
index 00000000..8c50b2ae
--- /dev/null
+++ b/lib/lvgl/docs/get-started/os/freertos.md
@@ -0,0 +1,3 @@
+# FreeRTOS
+
+TODO \ No newline at end of file
diff --git a/lib/lvgl/docs/get-started/os/index.md b/lib/lvgl/docs/get-started/os/index.md
new file mode 100644
index 00000000..30ea6af2
--- /dev/null
+++ b/lib/lvgl/docs/get-started/os/index.md
@@ -0,0 +1,13 @@
+# (RT)OS
+
+```eval_rst
+
+.. toctree::
+ :maxdepth: 2
+
+ nuttx
+ rt-thread
+ freertos
+ zephyr
+```
+
diff --git a/lib/lvgl/docs/get-started/os/nuttx.md b/lib/lvgl/docs/get-started/os/nuttx.md
new file mode 100644
index 00000000..97b95f77
--- /dev/null
+++ b/lib/lvgl/docs/get-started/os/nuttx.md
@@ -0,0 +1,97 @@
+# NuttX RTOS
+
+## What is NuttX?
+
+[NuttX](https://nuttx.apache.org/) is a mature and secure real-time operating system (RTOS) with an emphasis on technical standards compliance and small size.
+It is scalable from 8-bit to 64-bit microcontrollers and microprocessors and compliant with the Portable Operating System Interface (POSIX) and the American National Standards Institute (ANSI) standards and with many Linux-like subsystems.
+The best way to think about NuttX is to think of it as a small Unix/Linux for microcontrollers.
+
+### Highlights of NuttX
+
+- **Small** - Fits and runs in microcontrollers as small as 32 kB Flash and 8 kB of RAM.
+- **Compliant** - Strives to be as compatible as possible with POSIX and Linux.
+- **Versatile** - Supports many architectures (ARM, ARM Thumb, AVR, MIPS, OpenRISC, RISC-V 32-bit and 64-bit, RX65N, x86-64, Xtensa, Z80/Z180, etc.).
+- **Modular** - Its modular design allows developers to select only what really matters and use modules to include new features.
+- **Popular** - NuttX is used by many companies around the world. Probably you already used a product with NuttX without knowing it was running NuttX.
+- **Predictable** - NuttX is a preemptible Realtime kernel, so you can use it to create predictable applications for realtime control.
+
+---
+
+## Why NuttX + LVGL?
+
+Although NuttX has its own graphic library called [NX](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629474), LVGL is a good alternative because users could find more eye-candy demos and they can reuse code from previous projects.
+LVGL is an [Object-Oriented Component Based](https://blog.lvgl.io/2018-12-13/extend-lvgl-objects) high-level GUI library, that could fit very well for a RTOS with advanced features like NuttX.
+LVGL is implemented in C and its APIs are in C.
+
+### Here are some advantages of using LVGL in NuttX
+
+- Develop GUI in Linux first and when it is done just compile it for NuttX. Nothing more, no wasting of time.
+- Usually, GUI development for low level RTOS requires multiple iterations to get things right, where each iteration consists of **`Change code` > `Build` > `Flash` > `Run`**.
+Using LVGL, Linux and NuttX you can reduce this process and just test everything on your computer and when it is done, compile it on NuttX and that is it.
+
+### NuttX + LVGL could be used for
+
+- GUI demos to demonstrate your board graphics capacities.
+- Fast prototyping GUI for MVP (Minimum Viable Product) presentation.
+- visualize sensor data directly and easily on the board without using a computer.
+- Final products with a GUI without a touchscreen (i.e. 3D Printer Interface using Rotary Encoder to Input data).
+- Final products with a touchscreen (and all sorts of bells and whistles).
+
+---
+
+## How to get started with NuttX and LVGL?
+
+There are many boards in the [NuttX mainline](https://github.com/apache/incubator-nuttx) with support for LVGL.
+Let's use the [STM32F429IDISCOVERY](https://www.st.com/en/evaluation-tools/32f429idiscovery.html) as an example because it is a very popular board.
+
+### First you need to install the pre-requisites on your system
+
+Let's use the [Windows Subsystem for Linux](https://acassis.wordpress.com/2018/01/10/how-to-build-nuttx-on-windows-10/)
+
+```shell
+$ sudo apt-get install automake bison build-essential flex gcc-arm-none-eabi gperf git libncurses5-dev libtool libusb-dev libusb-1.0.0-dev pkg-config kconfig-frontends openocd
+```
+
+### Now let's create a workspace to save our files
+
+```shell
+$ mkdir ~/nuttxspace
+$ cd ~/nuttxspace
+```
+
+### Clone the NuttX and Apps repositories:
+
+```shell
+$ git clone https://github.com/apache/incubator-nuttx nuttx
+$ git clone https://github.com/apache/incubator-nuttx-apps apps
+```
+
+### Configure NuttX to use the stm32f429i-disco board and the LVGL Demo
+
+```shell
+$ ./tools/configure.sh stm32f429i-disco:lvgl
+$ make
+```
+
+If everything went fine you should have now the file `nuttx.bin` to flash on your board:
+
+```shell
+$ ls -l nuttx.bin
+-rwxrwxr-x 1 alan alan 287144 Jun 27 09:26 nuttx.bin
+```
+
+### Flashing the firmware in the board using OpenOCD:
+```shell
+$ sudo openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg -c init -c "reset halt" -c "flash write_image erase nuttx.bin 0x08000000"
+```
+
+Reset the board and using the 'NSH>' terminal start the LVGL demo:
+```shell
+nsh> lvgldemo
+```
+
+## Where can I find more information?
+
+- This blog post: [LVGL on LPCXpresso54628](https://acassis.wordpress.com/2018/07/19/running-nuttx-on-lpcxpresso54628-om13098/)
+- NuttX mailing list: [Apache NuttX Mailing List](http://nuttx.incubator.apache.org/community/)
+
diff --git a/lib/lvgl/docs/get-started/os/rt-thread.md b/lib/lvgl/docs/get-started/os/rt-thread.md
new file mode 100644
index 00000000..25bf61fc
--- /dev/null
+++ b/lib/lvgl/docs/get-started/os/rt-thread.md
@@ -0,0 +1,48 @@
+# RT-Thread RTOS
+
+<img src="https://raw.githubusercontent.com/RT-Thread/rt-thread/master/documentation/figures/logo.png" width=40% style="float: center;" >
+
+## What is RT-Thread?
+
+[Introduce about RT-Thread and how to run LVGL on RT-Thread in simulators](https://www.youtube.com/watch?v=k7QYk6hSwnc)
+
+[**RT-Thread**](https://www.rt-thread.io/) is an [open source](https://github.com/RT-Thread/rt-thread), neutral, and community-based real-time operating system (RTOS). RT-Thread has **Standard version** and **Nano version**. For resource-constrained microcontroller (MCU) systems, the Nano version that requires only 3 KB Flash and 1.2 KB RAM memory resources can be tailored with easy-to-use tools. For resource-rich IoT devices, RT-Thread can use the **online software package** management tool, together with system configuration tools, to achieve intuitive and rapid modular cutting, seamlessly import rich software packages; thus, achieving complex functions like Android's graphical interface and touch sliding effects, smart voice interaction effects, and so on.
+
+### Key features
+
+- Designed for resource-constrained devices, the minimum kernel requires only 1.2KB of RAM and 3 KB of Flash.
+- A variety of standard interfaces, such as POSIX, CMSIS, C++ application environment.
+- Has rich components and a prosperous and fast growing <a href="https://packages.rt-thread.org/en/">package ecosystem</a>
+- Elegant code style, easy to use, read and master.
+- High Scalability. RT-Thread has high-quality scalable software architecture, loose coupling, modularity, is easy to tailor and expand.
+- Supports high-performance applications.
+- Supports all mainstream compiling tools such as GCC, Keil and IAR.
+- Supports a wide range of <a href="https://www.rt-thread.io/board.html">architectures and chips</a>.
+
+
+## How to run LVGL on RT-Thread?
+
+[中文文档](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/packages-manual/lvgl-docs/introduction)
+
+LVGL has registered as a [software package](https://packages.rt-thread.org/en/detail.html?package=LVGL) of RT-Thread. By using [Env tool](https://www.rt-thread.io/download.html?download=Env) or [RT-Thread Studio IDE](https://www.rt-thread.io/download.html?download=Studio), RT-Thread users can easily download LVGL source code and combine with RT-Thread project. RT-Thread community has port LVGL to several BSPs:
+
+| BSP | Note |
+| ------------------------------------------------------------ | ---- |
+| [QEMU simulator](https://github.com/RT-Thread/rt-thread/tree/master/bsp/qemu-vexpress-a9/applications/lvgl) | |
+| [Visual Studio simulator](https://github.com/RT-Thread/rt-thread/tree/master/bsp/simulator/applications/lvgl) | |
+| [Nuvoton numaker-iot-m487](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nuvoton/numaker-iot-m487/applications/lvgl) | |
+| [Nuvoton numaker-pfm-m487](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nuvoton/numaker-pfm-m487/applications/lvgl) | |
+| [Nuvoton nk-980iot](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nuvoton/nk-980iot/applications/lvgl) | |
+| [Nuvoton numaker-m2354](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nuvoton/numaker-m2354/applications/lvgl) | |
+| [Nuvoton nk-n9h30](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nuvoton/nk-n9h30/applications/lvgl) | |
+| [Nuvoton numaker-m032ki](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nuvoton/numaker-m032ki/applications/lvgl) | |
+| [NXP imxrt1060-evk](https://github.com/RT-Thread/rt-thread/tree/master/bsp/imxrt/imxrt1060-nxp-evk/applications/lvgl) | |
+| [STM32L475 pandora](https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32l475-atk-pandora/applications/lvgl) | |
+| [STM32F407 explorer](https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32f407-atk-explorer/applications/lvgl) | |
+| [STM32F469 Discovery](https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32f469-st-disco/applications/lvgl) | |
+| [Raspberry PICO](https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pico/applications/lvgl) | |
+
+
+### Import a BSP project into RT-Thread Studio
+
+Clone the latest code from RT-Thread official repository. Open the RT-Thread Studio and select `File -> Import`. In the Import menu, please select `RT-Thread BSP Project into Workspace`, and click `next` button. In the `BSP location area`, please select the root path of the BSP which you prefer to import, such as `C:\Users\xxx\Desktop\rt-thread\bsp\stm32\stm32l475-atk-pandora`. In the `Project Name area`, please type a name for this project, then, press `Finish` button.
diff --git a/lib/lvgl/docs/get-started/os/zephyr.md b/lib/lvgl/docs/get-started/os/zephyr.md
new file mode 100644
index 00000000..3de47260
--- /dev/null
+++ b/lib/lvgl/docs/get-started/os/zephyr.md
@@ -0,0 +1,3 @@
+# Zephyr
+
+TODO \ No newline at end of file