Difference between revisions of "Guiliani:Features"

From Guiliani

(System, platform and peripherals)
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 13: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. Architecture 20.jpg

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