a lightweight multitasking-graphical operating system designed for small embedded system, it features :
- multitasking capability, pre-emptive with memory protection
- integrated Graphical User Interface
- integrated image decoder based on libpng and libjpg
- support sslv3, tls1.1 and tls1.2 based on woflSSL library
- OrbWeaver virtual machine to run user application on top of operating system without MMU support
- Inter Process Communication between task (enabling hybcrid kernel, instead of monolithic)
- ARM Cortex M4 (STM32F407, STM32F413), ARM Cortex M7 (STM32F746 - Discovery Board, STM32F765) support
- support for STM32 graphical hardware accelerator (ChromART)
- integrated file system based on FAT32 file system (sd card access)
- Wi-FI (ESP32 Module), ISO7816, Global Platform, ISO14443, GSM (SIM800 compatible), USB Device, SD CArd, I2C, 8080 LCD (FSMC)
demonstrate a multi-window graphical user interface running OrbWeaver application and system application simultaneously, windows switcher used for switching windows can be accessed from topbar
this application shows how to browse sd card file system using eFAT file system library on LeafOS
an example of Fast Fourier Transform based on CMSIS-DSP library running on LeafOS, transformation done in realtime using audio signal from microphone
this application shows LeafOS acted as USB Device, capable of transmitting audio signal to PC through USB interface based on isochronous packet
due to the nature of the library being used, licensed under GPLv2, as copyleft product then this project also licensed under GPLv2
- Keil IDE v4 or v5
- CMSIS v4.3 and CMSIS-DSP v1.4.6 (haven't tried with lower version, using STM32 Standard Peripheral Library v1 might need some changes)
- JTAG ULINK/JLINK or STLink for debugging purpose
- open MDK ARM IDE Project (.uvproj) using Keil IDE
- configure the device and CMSIS support (include CMSIS-DSP library for FFT)
- check config.h, defs.h if you need to activate some features such as switching LCD display
all files Users/Interfaces with prefix if_xxxx and APIS with the same prefix provides Hardware Abstraction Layer for operating system, in order to port APIs to different hardware, developer must provide APIs with the same input paramters and return value, check ili932x.c, if_gui.c and if_gui_fmc.c to see how it works