Advanced RTOS, embedded real-time OS, compact OS, IDE, Software development toolkits, embedded c compilers, Multicore debugger, hardware probes, static source code analysis tool, secure hypervisor, virtual prototyping platform
 
ThreadX® Real-Time Operating System ThreadX RTOS
 
List of Features
 
Supported Processors
 PowerPC
 680x0/683xx
 ColdFire
 MCORE
 ARM7
 ARM9
 ARM/Thumb
 StrongARM
 MIPS
 SH
v8xx
TriCore
Native Win32
XScale
ZSP
i960
Fast Real-time Response
 ThreadX provides fast real-time response for the most demanding embedded applications:
  • Low Interrupt Latency
  • Fast Context Switch
  • Preemption Threashold™
  • Priority Inheritance
  • Flexible Memory Utilization
  • Dynamic Resource Creation
  • Hybrid Kernel Objects
  • Software Timers
  • Event Flags
  • Counting Semaphores
  • Memory Allocation
 
LOW INTERRUPT LATENCY
ThreadX is optimized to provide extremely fast interrupt response, on the order of 0.5us on a 200MHz PowerPC.
 
FAST CONTEXT SWITCH
The picokernel architecture of ThreadX enables extremely rapid context switching on the order of 1.7us on a 40MHz ARM7 processor.
 
PREEMPTION-THRESHOLD™
ThreadX's preemption-threshold technology is a completely unique addition to the priority based, preemptive scheduling model. Preemptionthreshold allows the application to disable preemption over ranges of priorities instead of disabling preemption of the entire system. Applications can take advantage of this to reduce the number of context switches, eliminate un-deterministic priority inversion, and to create priority classes that execute in a non-preempted fashion.
 
PRIORITY INHERITANCE
In addition to using preemptionthreshold to battle un-deterministic priority inversion, ThreadX Version 4 provides optional priority inheritance with its new TX_MUTEX object.
 
FLEXIBLE MEMORY UTILIZATION
ThreadX is designed for complete flexibility. Control blocks and memory areas associated with thread stacks, mutexes, message queues, and memory pools can easily be created in any address space of your hardware. For example, ThreadX makes it easy to boost the performance of a highpriority thread by placing its stack in a fast memory area. Equally important, this can be done at run-time based upon your startup code detecting its configuration.
 
DYNAMIC RESOURCE CREATION
ThreadX allows you to create system resources dynamically. This is especially important if your application has multiple or dynamic configuration requirements. In addition, there are no predetermined limits on the number of ThreadX resources you can use. The number of system objects does not have any impact on performance.
 
HYBRID KERNEL OBJECTS
ThreadX enables you to incorporate control blocks and services into your hybrid services. For example, a service that allows threads to feed from multiple message queues can easily be created by combining message queues with a counting semaphore.
 
SOFTWARE TIMERS
ThreadX allows an unlimited number of software timers. Timers operate in either a one-shot or periodic manner. ThreadX software timers are kept in an ordered list of expiration without performing a linear search on each timer activation or timer interrupt condition. This greatly reduces the amount of overhead in timer-centric applications like communication and process control.
 
EVENT FLAGS
ThreadX offers 32-bit event flags for application synchronization. In addition, ThreadX provides the ability to automatically clear events during retrieval.
 
COUNTING SEMAPHORES
ThreadX provides highly optimized 32-bit counting semaphores that can be used for resource management or input notification.
 
MEMORY ALLOCATION
ThreadX provides fast and deterministic block memory allocation as well as traditional heap-like memory allocation.
 
OSEK
ThreadX conforms to OSEK/VDX specifications in its implementation of conformance classes, OSEK COM, CAN, and API. ThreadX provides a royalty-free hard real-time RTOS that is ideal for embedded applications in automotive electronics.
 
ThreadX Kernel Awareness
MULTI for ThreadX is fully aware of all seven ThreadX kernel components. MULTI displays live easy-to-understand summary lists and detailed individual views of all ThreadX components:
  • Threads
  • Message Queues
  • Semaphores
  • Mutexes
  • Event Flag Groups
  • Memory Block Pools
  • Memory Byte Pools
  • Application Timers
 
SYSTEM-LEVEL DEBUGGING
MULTI's kernel awareness allows developers to continually observe the status of all threads and other kernel components in a system. Each view is fully customized for the ThreadX kernel and includes a detailed help screen explaining the meaning of each field and how it was derived from the underlying ThreadX data structures to help developers gain familiarity with the internal workings of the ThreadX kernel.
 
Thread information windows, for example, show a thread's current execution state: Ready, Executing, Suspended, Completed, or Terminated. For suspended threads, MULTI provides additional helpful information. In that case, the thread information window shows exactly why the thread is suspended and what specific kernel component is responsible.
 
THREAD-SPECIFIC DEBUGGING
MULTI can debug a specific thread by setting thread-specific break-points so that all other threads will continue past the breakpoint. This capability allows the user to debug a single thread even when it uses code that is common to other threads.
 
ADVANCED STACK CHECKING
MULTI can detect stack overflow. MULTI's enhanced stack checking and monitoring features provide unprecedented ease-of-use.
 
In all thread views, a stack use indicator shows how much stack is currently in use by that thread. This information identifies threads that are using more stack space than anticipated, ideally before problems occur. Then stack sizes can be adjusted to guard against overflow. MULTI for ThreadX provides optional stack checking to ensure that thread stack sizes are appropriate. Users can check stack use for a single thread or for all threads. In either case, a window displays the peak stack usage as determined by the highest point in the stack that was changed since the thread was created.
 
MEMORY ANALYSIS
MULTI for ThreadX contains enhanced views of memory block pools and byte pools intended specifically to help developers find problems with dynamic memory allocation. A single click from a memory pool window brings up a view of all memory blocks or fragments together with their location in memory, their current state and, for byte pool fragments, their size.
 
RUN-MODE DEBUGGING
Run-mode Debugging simplifies the design of sophisticated multithreaded applications by enabling designers to debug those applications on a thread-by-thread basis while the application continues to run.
 
Traditional debugging approaches like BDM (background mode debugging) and JTAG generally require that programmers halt their system and stop all threads before they can examine any particular data or thread. Run-mode debugging provides a better gauge of realworld system behavior by enabling programmers to halt and examine specific threads in their system while the remaining threads continue to run. Each time a thread hits a breakpoint, MULTI halts that thread and opens a source code debug window specific to that thread. Programmers can then single-step or browse through the halted thread and read memory and registers, all without disrupting program execution.
 
EventAnalyzer™ for ThreadX®
The EventAnalyzer™ for ThreadX® is a powerful tool that enables programmers to understand the complex real-time interactions of their system. Some problems simply cannot be detected with standard debugging techniques. All desired system and user-defined application events can be logged and graphically displayed for easy analysis in the EventAnalyzer GUI.
 
POWERFUL ANALYSIS
The EventAnalyzer GUI operates like a high-level logic analyzer. All context switching, thread state changes, ThreadX API calls, and interrupts are logged on the target in real-time. This data is transferred to the host where it is displayed graphically. Enabling and disabling event logging, selecting which events to track, and determining the size of target event buffers is fully controllable by the user.
 
The EventAnalyzer also provides various navigation capabilities that allow the user to zoom into certain areas for greater detail, or alternatively, zoom out to see the big picture, search, hide or display various events, and change the look and feel of task status lines and event icons.
 
LOW INTRUSIVENESS
The real-time event information is captured by the high-performance ThreadX kernel in the least intrusivemanner possible. When event logging is enabled, small macros are inserted directly into the core ThreadX services that are responsible for entering the associated event in the event log. This approach leads to the absolute least intrusiveness possible.
 
USER DEFINED EVENTS
Users can insert code into their applications to generate logged events. This can be very useful since the user can locate important points in their code and log events that help understand the system better. Also, extra data can be logged such as the values of particular variables.
 
EASY EVENT POOL CONFIGURATION
ThreadX stores the real-time event information in a circular buffer whose starting address and size are defined inside the user's link control file. Changing the location or size of the event log is easy.
 
Integrated Networking
NetX
NetX is is a complete TCP/IP stack designed for speed! From its Piconet™ architecture to the zero-copy API, the entire design around NetX is all about packet processing speed. Under NetX, packet processing is extremely fast.
 
PICONET ARCHITECTURE
Piconet Architecture is one that is first and foremost designed for deeply embedded applications with minimal internal function call overhead. Many TCP/IP implementations have a considerable number of function calls sprinkled throughout the packet processing path. Although this might be fine for workstation software, it is not acceptable for performance critical embedded applications. Piconet also means that the entire stack software must be loosely coupled so that only those portions the application uses are brought into the final image.
 
NETX PROTOCOL COMPONENTS
NetX is a powerful and lean TCP/IP product. Version 2.0 contains support for basic IP, ICMP, ARP, RARP, UDP, IGMP and TCP protocols.
 
ZERO-COPY API
NetX provides zero copy TCP/IP communications to eliminate moving data to and from user buffers. This results in very high-performance and frees cycles back to the application that would otherwise be spent performing meaningless data movements.
 
FLEXIBLE PACKET POOL MANAGEMENT
The application may create any number of packet pools in any number of memory areas in the system. These zero-copy packets can be linked with packets from the same pool or even a different pool. A packet can even be created inside of a global C data structure. In addition, calling threads may suspend (with optional timeout) on packet allocation.
 
UDP FAST PATH TECHNOLOGY™
Basic UDP packets that are not fragmented at the IP level pass through NetX without any data copying and without any system context switches. Many commercial network stacks process packets received within a system thread thereby adding a context switch to the packet overhead. In NetX simple UDP packets are delivered directly to the thread suspended waiting for a packet on a specified UDP port.
 
DYNAMIC CREATION
NetX allows creation of system resources dynamically. This is especially important if the application has multiple or dynamic configuration requirements. In addition, there are no predetermined limits on the number of NetX resources that can used.
 
FileX
FileX provides complete MS-DOS format media and file management for deeply embedded applications.
 
  • Complete ThreadX Processor Support
  • Complete ANSI C source code
  • Real-time Performance
  • Easy to use and powerful services
  • Unlimited FileX Objects (media, directories, and files)
  • Dynamic FileX Object Creation/Deletion
  • Flexible memory usage
  • Size scales automatically
  • Small footprint (as low as 6 Kbytes) Instruction area size: 6-30K
  • Complete Integration with ThreadX
  • Endian Neutral
  • Easy to implement FileX I/O Drivers
  • 12, 16 and 32 Bit FAT Support
  • Long File Name Support
  • Contiguous Cluster Support
  • Internal Logical Sector Cache
     
    MULTIPLE MEDIA MANAGEMENT
    FileX is able to support an unlimited number of physical media. Each media instance has its own distinct memory area and associated driver specified on the tx_media_open API call.
     
    LOGICAL SECTOR CACHE
    FileX maintains an n-deep logical sector cache for each opened media. The depth of the logical sector cache is determined by the amount of memory supplied to FileX with the tx_media_open API call. By reducing the number of whole sector transfers - both to and from the media - the FileX logical sector cache significantly improves performance.
     
    CONTIGUOUS FILE SUPPORT
    In order to improve and make file access time more deterministic, FileX offers contiguous file support though the API service tx_file_allocate. This routine takes looks for a series of adjacent clusters to satisfy the request.
     
    DYNAMIC CREATION
    FileX allows creation of system resources dynamically. This is especially important if the application has multiple or dynamic configuration requirements. In addition, there are no predetermined limits on the number of FileX resources that can be used (media or files).
     
    EASY TO INTEGRATE
    FileX is easily integrated with virtually any FLASH or Media device. Porting FileX is very simple.
     
  •  
    Rational Rose® RealTime Integration
    ThreadX has been integrated with the Rational Rose® RealTime UML system modeling package. With Rational Rose RealTime, designers can build applications in UML, debug them at the source code level with MULTI, and then run them on ThreadX targets. MULTI fully supports debugging at both the UML and C source code levels simultaneously, fully synchronized for developer flexibility. Rational Rose RealTime's Target Adaptation Layer, available from Green Hills Software, makes it easy to incorporate ThreadX with UML system development.
     
    Graphics
    ThreadX provides extensive support for embedded graphics development through the Portable Embedded Graphics development tools, PEG. PEG consists of a C++ based library and device drivers that make it simple to include powerful graphics in embedded real-time applications. PEG applications can be run in either virtual address spaces or in kernel space, and resides in less than 100KB. It is small, fast and royalty-free, yet powerful enough for advanced real-time graphics needs.
     
    CORBA ORBs
    Green Hills Software provides a family of CORBA® ORBs™, Testing Tools, CORBA Services, Training, Consulting Services, and complementary products for use with ThreadX. These products help to develop a robust, scalable and solid communication infrastructure for both your real-time embedded products and for your enterprise applications. ORBexpress™ is the smallest and fastest Object Request Broker® in the world. ORBexpress's unique component architecture, based on over 10 years of successfully fielded applications, enables embedded system engineers to deliver solid products, on schedule, with predictable behavior. With the highest achievable performance and throughput, ORBexpress is suitable for any system with stringent performance requirements. Green Hills provides the following ORBexpress products:
    • ORBexpress C Edition - brings an open standard solution to the DSP, micro controller and network processor world. Adhering to the latest OMG minimum CORBA specification and C Language procedural mapping, its 100% pure POSIX and ANSI C ensures easy portability to any target platform. The product core has been used in commercial development and deployment for over two years.
    • ORBexpress C++ Edition - implements additional CORBA features such as Dynamic ANYs, asynchronous messaging, timers, and request timeouts. Memory can be shared and pre-allocated to guarantee access times.
    • ORBexpress Real-time (RT) Edition - extends the core of ORBexpress C++ to support the OMG Real-Time specifications. ORBexpress RT Edition adds support for priorities and scheduling and can be used in any system that requires hard real-time behavior.
    • ORBexpress High-Speed Notification service - allows for easy generation and propagation of events among system components. It provides four different notification paradigms.
    • ORBexpress Naming Service - is an extension of the Object Management Group standard that allows you to write "smart" naming clients or use your own database.
    • ORBexpress Telecom Logging Service - allows for storage and processing of events such as summary logs or root cause analysis.
    Communications Protocols
    Green Hills Software provides a total solution that enables embedded system developers to add communications, networking and web management to their designs. These products were developed from the ground up to address the needs of embedded designers. Not only are they complete from a features standpoint, but these products also have minimal system and memory requirements and were designed with portability in mind.
     
  • TCP/IP - is a fully compliant suite of protocols for Internet, Intranet and LAN connectivity. It is a complete SDK for Developers of embedded systems.
  • PPP - or Point-to-Point Protocol is a protocols suite that implements TCP/IP to allow embedded products to communicate over a serial line.
  • Secure Sockets Layer (SSL) - A security protocol that provides communications privacy over the Internet. The protocol allows client/servier application to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.
  • FTP Client and Server - adds File Transfer Protocol Client and Server functions to the TCP/IP product.
  • POP3 - is a complete drop-in module that adds the ability to retrieve email from POP3 email server on an embedded system.
  • DHCP Client and Server - a complete drop-in software module for developers to add DHCP Client and Server functionality to their embedded systems.
  • SMTP - Simple Mail Transport Protocol (SMTP) client that enables embedded devices to send email to any SMTP server.
  • IGMP - allows machines to join and leave various multicast groups that are managed by a router.
  • DNS - allows embedded devices to look up Internet addresses from any Domain Name Server.
  • TELNET Client and Server - enables an embedded system to provide network accessibility for remote configuration and monitoring through TELNET.
  • BootP Client - allows an embedded device to configure itself dynamically at boot time.
  • NTP - client that provides embedded devices the ability to retrieve time statistics from a NTP server.
  • Mobile IP - an enhancement that allows a device to roam across networks while being identified by a single IP address.
  • IPMulticast - Complete drop in module that provides the capability to send data to multiple addresses without the overhead of a broadcast.
  • NATRouter - an Internet Protocol technology which is designed to overcome problems businesses experience with IP networking.
  • Routing Information Protocol (RIP) - a complete module for developers of embedded systems that adds RIP v1/v2 functionality to their embedded design.
  • USB - USB stack and class driver framework. All USB protocols are supported, as are complex USB devices with multiple configurations/interfaces and alternate settings.  
  • Web Management and Configuration
  • Email Alerter - adds notification functionality to embedded systems designs.
  • Server - an embedded web server which allows an embedded device to be configured and monitored by end users with any World Wide Web browser.
  • SNMP - a fully compliant v1/v2/v3 agent supporting management by all of the popular SNMP management tools and workstations.
  • CLI - embedded toolkit designed to speed the implementation of textbased command line interfaces for embedded devices.
  • XML - a small memory footprint XML parser and framer that allows embedded devices to easily translate internal format data structures to and from XML data streams.
  • UPnP - embedded Universal Plug and Play toolkits allow devices to provide UPnP 1.0 services to UPnP Control Points.
  • Graphlets Toolkit - a series of Java applets that interface with the embedded Web server to retrieve variable information and display it graphically.
  • Remote Host Toolkit - provides the ability to store large files, such as images or Java applets, on another Web server and serve them as if they came from the embedded device.  
  •  

    » Back to ThreadX RTOS


    » RTOS 
    » MULTI IDE
    » AdaMULTI IDE
    » Compilers
    » Communications Software
    » Custom Development