Guiliani:Features: Difference between revisions
From Guiliani
No edit summary |
|||
Line 61: | Line 61: | ||
* GUI design and behavior is stored in XML or binary description-files | * GUI design and behavior is stored in XML or binary description-files | ||
* Easy communication with external applications | * Easy communication with external applications | ||
=== Guiliani in detail === | |||
==== ROM/RAM-usage ==== | |||
The following list contains values for the memory-usage of Guiliani in different configurations. of course the actual memory-usage heavily depends on the used features and resources. | |||
All values are determined using the following configuation: | |||
* GNU Tools ARM Embedded 6 2017 Q2 | |||
* debug-build with -Og | |||
{| class="wikitable" | |||
!Operating System | |||
!ROM | |||
!RAM | |||
|- | |||
|FreeRTOS | |||
|1080kB | |||
|depends | |||
|- | |||
|ARM mbed OS | |||
|600kB | |||
|depends | |||
|- | |||
!Graphics-API | |||
!ROM | |||
!RAM (not including memory for loaded images and framebuffers) | |||
|- | |||
|eGML (incl. jpeg and png-lib) | |||
|1080kB | |||
|15kB | |||
|- | |||
|D/AVE | |||
|530kB | |||
|10kB | |||
|- | |||
|BLU | |||
|560kB | |||
|10kB | |||
|- | |||
!Font-API | |||
!ROM | |||
!RAM (not including memory for loaded fonts) | |||
|- | |||
|FreeType | |||
|410kB | |||
|21kB | |||
|- | |||
|GlyphLib | |||
|20kB | |||
|1kB | |||
|- | |||
!Guiliani-Features | |||
!ROM | |||
!RAM (not including working memory) | |||
|- | |||
|Core-Packages | |||
|350kB | |||
|11kB | |||
|- | |||
|DataPool | |||
|10kB | |||
|1kB | |||
|- | |||
|Streaming-Engine | |||
|120kB | |||
|2kB | |||
|- | |||
|Feature-Factory | |||
|550kB | |||
| | |||
|- | |||
|Animations | |||
|40kB | |||
| | |||
|} |
Revision as of 12:36, 17 December 2020
Guiliani is a C++ software framework enabling the creation of visually appealing, hardware and OS platform-independent GUIs for embedded systems.
Guiliani adopts the philosophy of write once, compile for & run on many different target hardware. Once a Guiliani application has been developed, it can run natively on supported target platforms. When using Guiliani, the usual development workflow is to design the application on a PC and target a set of embedded platforms for production release.
Minimum HW requirements
Criteria | Requirements |
---|---|
MCU | 100Mhz |
ROM | ~700kb for Guiliani without resources |
RAM | ~50kb for Guiliani without resources |
Compiler | C++ Compiler with exception Support |
Operating System | no Operating System required, but many supported |
Architecture overview
Guiliani is split into two layers, the Guiliani runtime engine, and a platform abstraction layer.
Features
System, platform and peripherals
- Object-oriented C++ HMI-framework optimized for embedded systems
- Low memory consumption
- Minimized CPU usage
- Operation system independent (Baremetal, eLinux, FreeRTOS, embOS, ARM mbed, ...)
- CPU independent (MCU, MPU, ARM, FPGA with NIOS, ...)
- Support for fixed point / floating point CPUs
- So far supported embedded platforms include: i.MX6, i.MX7, Raspberry PI, Renesas RZ/A, RZ/G, RX63N, STM32F429, ALTERA NIOS II, Intel x86,…
- Supports software-rasterizer (TES eGML) or GPU-accelerated Graphics-API (OpenGL (ES), TES D/AVE)
- Support for subpixel-accurate rendering
- Support for hardware-specific capabilities (e.g. hardware graphic layers)
- UNICODE support (UTF-8, UTF-16)
- Prepared for thread-safe integration into existing applications
GUI features
- Large set of pre-defined widgets
- Easy to customize existing widgets or to integrate new widgets
- Support for animations
- Multi-language support (dynamically switchable at runtime)
- Image-sets (skinning)
- Automated layout of GUI elements
- Rich text support
- Smart redraw mechanism and resource-management
- GUI can be developed independently from applications
Application development & support
- Comprehensive and up-to-date documentation
- Customizable trainings regarding content, location and time
- Tutorials available
- Integrated debugging mechanism
- GUI design and behavior is stored in XML or binary description-files
- Easy communication with external applications
Guiliani in detail
ROM/RAM-usage
The following list contains values for the memory-usage of Guiliani in different configurations. of course the actual memory-usage heavily depends on the used features and resources.
All values are determined using the following configuation:
* GNU Tools ARM Embedded 6 2017 Q2 * debug-build with -Og
Operating System | ROM | RAM |
---|---|---|
FreeRTOS | 1080kB | depends |
ARM mbed OS | 600kB | depends |
Graphics-API | ROM | RAM (not including memory for loaded images and framebuffers) |
eGML (incl. jpeg and png-lib) | 1080kB | 15kB |
D/AVE | 530kB | 10kB |
BLU | 560kB | 10kB |
Font-API | ROM | RAM (not including memory for loaded fonts) |
FreeType | 410kB | 21kB |
GlyphLib | 20kB | 1kB |
Guiliani-Features | ROM | RAM (not including working memory) |
Core-Packages | 350kB | 11kB |
DataPool | 10kB | 1kB |
Streaming-Engine | 120kB | 2kB |
Feature-Factory | 550kB | |
Animations | 40kB |