To add support for a new platform (e.g., a new RTOS or embedded board):
port/<platform_name>/
├── lv_port_disp_<name>.c # LVGL display driver
├── lv_port_indev_<name>.c # LVGL input device driver
└── main_<name>.c # Entry point
Your display driver must provide a flush callback for LVGL:
void lv_port_disp_<name>_init(void) {
// 1. Initialize your display hardware
// 2. Create LVGL display with lv_display_create()
// 3. Set resolution and flush callback
// 4. Allocate draw buffers
}Map your platform's input (touch, buttons, mouse) to LVGL:
void lv_port_indev_<name>_init(void) {
// 1. Initialize input hardware
// 2. Create LVGL indev with lv_indev_create()
// 3. Set read callback
}Create core/platform/src/platform_<name>.c implementing all functions from platform.h:
eapps_tick_get_ms()— Required for LVGL tickeapps_clipboard_get/set()— Optionaleapps_sysinfo_*()— Optionaleapps_keepawake_*()— Optional
Add cmake/<name>.cmake with cross-compiler settings.
Add platform detection in root CMakeLists.txt and selection in port/CMakeLists.txt.
cmake -B build-<name> -DCMAKE_TOOLCHAIN_FILE=cmake/<name>.cmake
cmake --build build-<name>