GUIX

The GUIX development package is a professional quality graphical user interface package created to meet the needs of embedded systems developers. Unlike the alternatives,GUIX is small, fast, and easily ported to virtually any hardware configuration capable of supporting graphical output.GUIX also delivers exceptional visual appeal and an intuitive and powerful API for application-level user interface development.

NetX

ThreadX is Express Logic's advanced Real-Time Operating System (RTOS) designed specifically for deeply embedded applications. ThreadX has many advanced features, including its picokernel™ architecture, preemption-threshold,™ event-chaining,™ and a rich set of system services. Combined with its superior ease-of-use, ThreadX is the ideal choice for the most demanding of embedded applications.

Small Footprint
ThreadX is implemented as a C library. Only the features used by the application are brought into the final image. The minimal footprint of ThreadX is under 2KB on Microcontrollers.

Fast Response
ThreadX helps your application respond to external events faster than ever before. ThreadX is also deterministic. A high priority thread starts responding to an external event on the order of the time it takes to perform a highly optimized ThreadX context switch.

ThreadX is Fast!

Boot Time: 300 cycles

Context Switch Time: 20 cycles

Semaphore Get: 30 cycles

Minimal RAM requirement: 500 bytes

Minimal ROM requirement: 2K bytes

timing based on ThreadX V5.1, configured for maximum performance and minimal size.

ThreadX is Small!

Minimal Kernel Size: Under 2K bytes

Queue Services: 900 bytes

Semaphore Services: 450 bytes

Mutex Services: 1200 bytes

Block Memory Services: 550 bytes

Measurements based on ThreadX V5.1, configured for minimal size

Instant On
ThreadX requires as little as 300 cycles to initialize and start scheduling application threads. This is hugely important for consumer and medical devices that simply can't afford a long boot time.

Easy To Use
ThreadX is very easy to use. The ThreadX API is both intuitive and highly functional. In addition, the API names are made of real words and not the “alphabet soup” names that are common to other RTOS products. Building a ThreadX application is also easy. Simply include the TX_API.H file in the application software and link the application objects with the ThreadX library. The resulting image is ready for execution – it’s that simple!

ThreadX also boasts the very best documentation. Please review our ThreadX User Guide and see for yourself!

No Mysteries
ThreadX is delivered with complete C and assembly source code so you can see exactly how ThreadX operates. If you are used to in-house kernels or had bad experiences with “black box” commercial RTOS products, this should be most comforting.

ThreadX

ThreadX is Express Logic's advanced Real-Time Operating System (RTOS) designed specifically for deeply embedded applications. ThreadX has many advanced features, including its picokernel™ architecture, preemption-threshold,™ event-chaining,™ and a rich set of system services. Combined with its superior ease-of-use, ThreadX is the ideal choice for the most demanding of embedded applications.

Small Footprint
ThreadX is implemented as a C library. Only the features used by the application are brought into the final image. The minimal footprint of ThreadX is under 2KB on Microcontrollers.

Fast Response
ThreadX helps your application respond to external events faster than ever before. ThreadX is also deterministic. A high priority thread starts responding to an external event on the order of the time it takes to perform a highly optimized ThreadX context switch.

ThreadX is Fast!

Boot Time: 300 cycles

Context Switch Time: 20 cycles

Semaphore Get: 30 cycles

Minimal RAM requirement: 500 bytes

Minimal ROM requirement: 2K bytes

timing based on ThreadX V5.1, configured for maximum performance and minimal size.

ThreadX is Small!

Minimal Kernel Size: Under 2K bytes

Queue Services: 900 bytes

Semaphore Services: 450 bytes

Mutex Services: 1200 bytes

Block Memory Services: 550 bytes

Measurements based on ThreadX V5.1, configured for minimal size

Instant On
ThreadX requires as little as 300 cycles to initialize and start scheduling application threads. This is hugely important for consumer and medical devices that simply can't afford a long boot time.

Easy To Use
ThreadX is very easy to use. The ThreadX API is both intuitive and highly functional. In addition, the API names are made of real words and not the “alphabet soup” names that are common to other RTOS products. Building a ThreadX application is also easy. Simply include the TX_API.H file in the application software and link the application objects with the ThreadX library. The resulting image is ready for execution – it’s that simple!

ThreadX also boasts the very best documentation. Please review our ThreadX User Guide and see for yourself!

No Mysteries
ThreadX is delivered with complete C and assembly source code so you can see exactly how ThreadX operates. If you are used to in-house kernels or had bad experiences with “black box” commercial RTOS products, this should be most comforting.

TraceX

TraceX is Express Logic’s host-based analysis tool that provides developers with a graphical view of real-time system events and enables them to visualize and better understand the behavior of their real-time systems. With TraceX, developers can see clearly the occurrence of system events like interrupts and context switches that occur out of view of standard debugging tools. The ability to identify and study these events, and to pinpoint the timing of their occurrence in the context of the overall system’s operation enables developers to resolve programming problems by finding unexpected behavior and letting them investigate specific areas further.

TraceX Free TrialTrace information is stored in a buffer on the target system, with the buffer location and size determined by the application at run-time. TraceX can process any buffer constructed in the proper manner, not only from ThreadX, but from any application or RTOS. The trace information may be uploaded to the host for analysis at any time – either post mortem or upon a breakpoint. ThreadX implements a circular buffer, which enables the most recent “N” events to be available for inspection in the event of system malfunction or other significant event.

Trace Data Collected By ThreadX® RTOS
TraceX is designed to work with Express Logic's ThreadX RTOS, which constructs a database of system and application “events” on the target system during run-time. These events include:

thread context switches

preemptions

suspensions

terminations

system interrupts

application-specific events

all ThreadX API calls

Events are logged under program control, with time-stamping and active thread identification so they can be displayed later in the proper time sequence, and associated with the appropriate thread. Event logging may be stopped and restarted by the application program dynamically, for example, when an area of interest is encountered. This avoids cluttering the database and using up target memory when the system is performing correctly.

TraceX is Like a Software Logic Analyzer
Once the event log has been uploaded from target memory to the host, TraceX displays the events graphically on a horizontal axis representing time, with the various application threads and system routines to which the events are related listed along the vertical axis. TraceX creates a “software logic analyzer” on the host, making system events plainly visible. Events are represented by color coded icons, located at the point of occurrence along the horizontal timeline, to the right of the relevant thread or system routine. When an event icon is selected, the corresponding information for that event is displayed, as well as the information for the two previous and two subsequent events. This provides quick, single-click access to the most immediate information about the event and its immediately surrounding events. TraceX provides a “Summary” display that shows all system events on a single horizontal line to simplify analysis of systems with many threads.

USBX

USBX is Express Logic's high-performance USB host, device, and On-The-Go (OTG) embedded stack. It is fully integrated with ThreadX and is available for all ThreadX supported processors. Like ThreadX, USBX is designed to have a small footprint and high-performance, making it ideal for today's deeply embedded applications that require to interface with USB devices or be connected with a Windows/Apple/Linux desktop over USB.

Small Footprint
USBX is implemented as a C library. Only the features used by the application are brought into the final image. The minimal footprint of USBX is under 2KB on Microcontrollers.

Easy To Use
USBX is very easy to use. The USB API is both intuitive and highly functional. In addition, the API names are made of real words and not the “alphabet soup” names that are common to other file system products. Building a USBX application is also easy. Simply include the UX_API.H fill in the application software and link the application objects with the USBX library. The resulting image is ready for execution - it's that simple!

Major Features

Available for host, device, and OTG

USB low speed, full speed and high speed are supported

Supports all embedded CPUs

Supports many USB host/device controllers in discrete or IP form integrated with a SOC including Synopsis, Philips, Atmel, NEC...

USBX in host mode is used when the application requires communication with certain USB devices such as a USB keyboard, a USB printer or USB Flash disk. UBX host is divided in 3 components :

The USBX core stack which is responsible for the detection of device insertion and removal as well as all the protocols available to USB (Control, Bulk, Interrupt and Isochronous). The core stack ensures that all device are properly detected and configured and its plug and play mechanism searches for a USB class driver responsible for this device.

The USB Controller driver which is specific to a USB host chip or USB host IP. USBX supports major USB standards like OHCI and EHCI in addition to proprietary discrete USB chips from Philips and other vendors. It is possible for a single host system to have multiple host controllers.

The USB Class Driver(s) which are responsible for driving each USB device once they have been enumerated. A USB class can either fall into the standard category (such as HID, printer, storage...) or be proprietary to a specific device. USBX host mode can support cascading hubs, multiple configuration devices, composite device...

USBX Device mode

USBX in device mode is used when the application requires communication with a windows/Apple/Linux desktop. In this case the embedded device is considered to be a USB device or slave.

The architecture for the device side is similar to the host although simplified

The USB Device Controller driver which is specific to a USB device chip or USB device IP.

The USB Device driver Class which is responsible for driving the USB device once it has have been enumerated by the host.

USBX in device mode can support a complex device framework including multiple configurations, multiple interfaces, multiple alternate settings. In addition, the definition of the device string framework can support multiple languages.

USBX OTG mode

USB supports On-The-Go (OTG) mode, whereby two OTG-equipped controllers can communicate with host/device arbitration performed automatically as each connection is made. This enables a unit to operate as Host or Device as needed to interface with another unit via USB.