Segger develops and distributes software development tools and ANSI C software components for embedded systems. Main products are : emWin, an universal graphics software (GUI) for embedded applications; embOS, a small real-time kernel; emFile, an embedded file system; USB stacks; and J-Link, the JTAG emulator for ARM cores. Segger cuts software development time for embedded applications by offering compact, flexible and easy-to-use middleware.
emWin
ISO/ANSI C source code
- Low resource usage.
- Alpha-Blending.
- Anti-Aliased drawing.
- Anti-Aliased fonts.
- Auto double / triple buffering.
- Multi-Language-Support with ASCII resource files.
- Multi-Layer-Support.
- Memory devices for flicker-free animation.
- Free rotation and scaling.
- Run-time-configurable drivers.
- Start/test applications supplied.
- No royalties.
- Any 8/16/32-bit CPU; only an ANSI “C” compiler is required!.
- Any (monochrome, grayscale or color) LCD with any controller supported(if the right driver is available).
- May work without LCD controller on smaller displays .
- Any interface supported using configuration macros .
- Display-size configurable.
- Characters and bitmaps may be written at any point on the LCD, not just on even-numbered byte addresses.
One of the most challenging aspects of many development projects is designing an attractive and useful display. In addition to creating images that look exactly how you want them to appear, the implementation of windows techniques, complex drawing routines, different fonts and flicker-free updates are also expected. As part of a complex process which can take months or even years, the developer only has a short time available for the implementation of the display functionality. emWin, probably the most efficient and comprehensive embedded GUI available, helps developers beat their timelines and development costs. It is written in ANSI C and supports any b/w, gray-scale or color display. Drivers for all popular LCD controllers are available. All types of graphical displays (STN-LCD, TFT, CRT, OLED, Plasma, ...) are supported.
Drivers for Display Controllers
Run-time configurable drivers can be written for all types of displays and display controllers, including monochrome, gray-scale, passive and active color (TFT) displays. Drivers for all popular display controllers already exist.
GUIBuilder
The GUIBuilder gives developers and designers a comprehensive tool to create the initial framework of the user interface. The code generated by the GUIBuilder can be modified and read back into the GUIBuilder again which allows easier modifications even at a later stage of the user interface development.
Bitmap Converter
The Bitmap Converter can convert any bitmap into standard C code or into a binary format which can be located on any media and loaded at run-time. It supports palette conversion for palette based color modes as well as high color, true color or semi-transparent images as PNGs. For efficiency, bitmaps may also be saved without palette data and in compressed form.
Fonts
A variety of fonts are shipped with the software. The default set of fonts includes quite small fonts up to fairly large fonts, mono spaced and proportional fonts, special digit fonts and framed fonts. Additional fonts can easily be generated from PC fonts using the Font Converter. Monotype and TrueType fonts support is available.
Font Converter
Font Converter is a Windows program that makes it easy to add new fonts to emWin. It can convert any installed PC font into a C file that can be compiled and linked with the application or the binary formats ".sif" and ".xbf", which can be loaded during runtime. Simply load a font which is installed on your system into the program, edit its appearance if necessary, and save it. The generated file can then be used by emWin and be shown on the display like any other standard emWin font.
Color Management
emWin features an integrated, very efficient color management system. This system allows conversion of logical colors (RGB format) into physical colors, which can be displayed at run time. As a result, your application does not need to be concerned the available colors, and displays can easily be interchanged.
Virtual Screen Support
The virtual screen feature supports display areas larger than the physical size of the display. It allows switching between different screens even on slow CPUs.
Window Manager/Widgets
The window manager allows the creation of windows of arbitrary size at any point of the display. It is an optional component, which is fully integrated into the software. Child windows and the exchange of messages between windows and their children/parents are supported. The window manager allows windows to be transparent and overlapping. Windows can freely move and resize. Additionally the window manager allows fading in and out. The window manager performs any necessary clipping. If callback routines are used, it also manages the redrawal of invalidated areas.
Touch Screen SupportemWin supports touch, gesture and multitouch events. The window manager deals with touch messages and widgets such as button objects. It takes only one line of code to create a button or another widget, which then handles touch messages and reacts accordingly. For resistive touch screens support is available as a driver for analog touch panels, which handles the analog input (from an AD-converter), debouncing and calibration of the touch screen is included.