Graphical User Interface

A flexible GUI for any embedded application using a graphical display. Supports smartphone-like graphics with 32 bits per pixel color and touch screen.

Return to the µC/OS Overview

Features

Key Values

With µC/OS GUI, you can create rich graphical user interfaces for your embedded applications. µC/OS GUI allows you to create different User Interfaces with an LCD display. It can be a simple 2D graphic screen using monochrome color up to smartphone like display with 32 bits per pixel color and Alpha blending. With touch screen support activated, µC/OS GUI can help you design fantastic user interfaces for your product.

µC/OS GUI is both processor-independent and LCD controller-independent. It is compatible with single-task and multitask environments, and works with any commercial RTOS or your proprietary operating system. µC/OS GUI is provided to you as “C” source code.

  • Optimized for small size and high performance.
  • Supports any 8/16/32-bit CPU
  • Supports any type of LCD, with any controller (with appropriate driver)
  • Configurable display size.
  • Virtual display support; the virtual display can be larger than the actual display.
  • Characters and bitmaps may be written at any point on the LCD, not just on even-numbered byte addresses.
  • Supports caching the display in memory, for even more performance.
  • Compile time switches allow for different optimizations.
  • Includes µC/OS GUI-View for detailed view of all layers in the PC simulation.
  • Configuration macros for any interface supported.

Available Packages

µC/OS GUI is available in the following packages, with support for a variety of LCD types:

  • Monochrome (black and white)
  • Gray scale passive
  • Active color (TFT)

Key Features

µC/OS GUI has the following features:

  • Anti-Aliasing
  • Dialog Boxes
  • Monospaced and Proportional Fonts
  • Foreign Language Support
  • GUIBuilder Application for creating dialog boxes
  • Memory Devices
  • Multiple Layers / Multiple Displays
  • Multiple Frame Buffers
  • Pointer Input Devices
  • Skinning
  • Viewer (display simulator)
  • Virtual Screen for displays larger than the viewport
  • Window Manager for creating and managing windows

Optional Features

The following features are also available in µC/OS GUI as add-ons to the basic package.

  • Multi Touch
  • Win32 PC Simulator
  • VNC Server
  • Specifications

Sample Images

gui_sample gui_image_flow gauges

Memory Requirements

The operation area of µC/OS GUI varies widely, depending primarily on the application and used features. The memory requirements of different modules are listed below, as well as memory requirement of example applications. The memory requirements of the GUI components have been measured on a system as follows: ARM7, IAR Embedded Workbench V4.42A, Thumb mode, Size optimization.

Memory Requirements of Example Applications

This section shows the requirements of some example applications. The following table contains the summary of the memory requirements:

Example Hello world Window application
ROM GUI core 5.9 kB 43 kB
Fonts 1.8 kB 12.5 kB
Application 38 B 2.7 kB
Startup code 300 B 300 B
Library 0.1 kB 1.5 kB
Total 8.1 kB 60 kB
RAM GUI core 62 B 5.2 kB
Application - 40 B
Stack 272 B 1.4 kB
Total 334 B 6.6 kB

Available Drivers

µC/OS GUI Display Drivers

A display driver supports a particular family of display controllers and all displays which are connected to one or more of these controllers. The drivers can be configured by modifying their configuration files whereas the driver itself does not need to be modified. The configuration files contain all required information for the driver including how the hardware is accessed and how the controller(s) are connected to the display.

Run-Time Configurable Drivers

µC/OS GUI provides support for the following run-time configurable display drivers:

Display driver Supported controllers Supported bits/pixel
GUIDRV_BitPlains µC/OS GUI display driver supporting solutions without display controller. It manages separate ’bitplains’ for each color bit. Initially it has been developed to support a solution for an R32C/111 which drives a TFT display without display controller. It can be used for each solution which requires the color bits in separate plains. 1 – 8
GUIDRV_DCache Cache driver for managing a double cache. It manages the cache data separately from the driver and converts the data line by line immediately before a drawing operation is required.?This driver makes it possible to use for example a 16bpp display driver in 1bpp mode with a cache which only requires 1 bit per pixel. 1 (could be enhanced on demand)
GUIDRV_Dist µC/OS GUI display driver supporting displays with multiple controllers. Depends on the actual display drivers.
GUIDRV_FlexColor
  • Epson S1D19122
  • FocalTech FT1509
  • Himax HX8347, HX8352A, HX8353, HX8325A
  • Ilitek ILI9320, ILI9325, ILI9328, ILI9 335, ILI9338, ILI9340, ILI9341, ILI9342, ILI9481
  • LG Electronics LGDP4531, LGDP4551
  • Novatek NT39122
  • OriseTech SPFD5408, SPFD54124C, SPFD5414D
  • Renesas R61505, R61516, R61526, R61580
  • Samsung S6E63D6
  • Sitronix ST7628, ST7637, ST7687, ST7735
  • Solomon SSD1355, SSD1961, SSD1963, SSD2119
  • Syncoam SEPS525
16, 18
GUIDRV_IST3088 Integrated Solutions Technology IST3088, IST3257 4
GUIDRV_Lin µC/OS GUI display driver supporting each display controller with linear addressable video memory with a direct interface. This means that the video RAM is directly addressable by the address lines of the CPU. The driver contains no controller specific code. So it can also be used for solutions without display controller which require a driver which only manages the video RAM. This driver supports nearly all built-in display controllers. 1, 2, 4, 8, 16, 24, 32
GUIDRV_S1D13748 Epson S1D13748 16
GUIDRV_S1D13781 Epson S1D13781 8
GUIDRV_S1D15G00 Epson S1D15G00 12
GUIDRV_SLin
  • Epson S1D13700 (indirect interface only!)
  • Solomon SSD1848
  • Toshiba T6963
  • UltraChip UC1617
1, 2
GUIDRV_SPage
  • Epson S1D15E05, S1D15E06, S1D15605, S1D15606, S1D15607, S1D15608, S1D15705, S1D15710, S1D15714, S1D15719, S1D15721
  • Integrated Solutions Technology IST3020
  • New Japan Radio Company NJU6676
  • Novatek NT7502, NT7534, NT7538, NT75451
  • Samsung S6B0719, S6B0713, S6B0724, S6B1713
  • Sino Wealth SH1101A
  • Sitronix ST7522, ST7565, ST7567, ST7591
  • Solomon SSD1805, SSD1303, SSD1815
  • Sunplus SPLC501C
  • UltraChip UC1601, UC1606, UC1608, UC1611, UC1701
1, 2, 4
GUIDRV_SSD1926 Solomon SSD1926 8

Compile-Time Configurable Drivers

µC/OS GUI provides support for the following compile-time configurable display drivers:

Display driver Supported controllers Supported bits/pixel
GUIDRV_CompactColor_16
  • Ampire FSA506
  • Epson S1D13742, S1D13743, S1D19122
  • FocalTech 1509
  • Himax HX8301, HX8312A, HX8325A, HX8340, HX8347, HX8352, HX8352B, HX8353
  • Hitachi HD66766, HD66772, HD66789
  • Ilitek ILI9161, ILI9220, ILI9221, ILI9320, ILI9325, ILI9326, ILI9328, ILI9342, ILI9481
  • LG Electronics LGDP4531, LGDP4551
  • MagnaChip D54E4PA7551
  • Novatek NT39122, NT7573
  • OriseTech SPFD5408, SPFD54124C, SPFD5414D, SPFD5420A
  • Renesas R61505, R61509, R61516, R61526, R61580, R63401
  • Samsung S6D0110A, S6D0117, S6D0129, S6D04H0
  • Sharp LCY-A06003, LR38825
  • Sitronix ST7628, ST7637, ST7687, ST7712, ST7735, ST7787
  • Solomon SSD1284, SSD1289, SSD1298, SSD1355, SSD1961, SSD1963, SSD2119
  • Toshiba JBT6K71
16
GUIDRV_Fujitsu_16 Fujitsu Jasmine (MB8J2020), Lavender (MB8J2120) 1, 2, 4, 8, 16
GUIDRV_Page1bpp
  • Epson S1D10605, S1D15605, S1D15705, S1D15710, S1D15714, S1D15721, S1D15E05, S1D15E06, SED1520, SED1560, SED1565, SED1566, SED1567, SED1568, SED1569, SED1575
  • Hitachi HD61202
  • Integrated Solutions Technology IST3020
  • New Japan Radio Company NJU6676, NJU6679
  • Novatek NT7502, NT7534, NT7538, NT75451
  • Philips PCF8810, PCF8811, PCF8535, PCD8544
  • Samsung KS0108B, KS0713, KS0724, S6B0108B, S6B0713, S6B0719, S6B0724, S6B1713
  • Sino Wealth SH1101A
  • Sitronix ST7522, ST7565, ST7567
  • Solomon SSD1303, SSD1805, SSD1815, SSD1821
  • ST Microelectronics ST7548, STE2001, STE2002
  • Sunplus SPLC501C
  • UltraChip UC1601, UC1606, UC1608, UC1701
1
GUIDRV_07X1
  • Novatek NT7506, NT7508
  • Samsung KS0711, KS0741, S6B0711, S6B0741
  • Sitronix ST7541, ST7571
  • Solomon SSD1854
  • ST Microelectronics STE2010
  • Tomato TL0350A
2
GUIDRV_1611
  • Epson S1D15E05, S1D15E06, S1D15719
  • UltraChip UC1610, UC1611
224
GUIDRV_6331 Samsung S6B33B0X, S6B33B1X, S6B33B2X 16
GUIDRV_7529 Sitronix ST7529 1, 4, 5

µC/OS GUI Touch Drivers

A touch driver supports a particular family of touch controllers and all touch pads which are connected to one of these controllers. The drivers can be configured by modifying their configuration files whereas the driver itself does not need to be modified. The configuration files contain all required information for the driver including how the hardware is accessed and how the controller(s) are connected to the display.

TouchDriver Type Driver Name Supported Controllers
GUI Touch Driver GUITDRV_ADS7846 Texas Instruments ADS7846
GUI Multi-Touch Driver GUIMTDRV_TangoC32 PIXCIR Tango C32

Note: If you are looking for a display driver that is not listed in the table above, contact us at info@micrium.com, and describe your requirements.

Licensing

Licensing Packages That Meet Your Needs

Micrium embedded components are priced as individual modules or as bundled solutions. Check out our licensing page for more information.

Documentation

Micrium's user documentation is available online on the Micrium documentation site.

Contact us today and start working with µC/OS