Developing with INTEGRITY® Real-Time Operating System
INTEGRITY Project Wizard  
The INTEGRITY Project Wizard simplifies the process of starting development of a new project or application. It provides a graphical interface through which developers can select various project attributes, such as the desired BSP, the number of address spaces desired, and whether the image will be loaded dynamically or statically defined. The Project Wizard also facilitates selection of shared libraries, file systems, TCP/IP stacks, the Resource Manager, and debug agents. With the Project Wizard, you can easily create INTEGRITY applications with just a few clicks.


 
The INTEGRITY New Project Wizard offers a graphical interface that simplifies the start of a new project.


 
 
The Integrate utility  


The Integrate™ utility is a unique industry-leading innovation that enables the system designer to establish an initial state of tasks, connections, and other kernel objects across multiple address spaces. It enables the system designer to verify system security and guarantee resource availability.

Integrate has a graphical front-end that enables the system designer to configure all resources in the entire INTEGRITY system, including address spaces, clocks, tasks, semaphores, connections, etc., in an easy-to-use yet powerful interface. Add new address spaces simply by clicking and dragging the address space icon into the main canvas. Add a task to this address space by clicking and dragging the task icon into the newly created address space block. Create connections between address spaces simply by clicking and dragging the cursor from one address space to another.

Integrate also has powerful navigation capabilities, enabling the designer to search for and locate address spaces that are not in the viewable area of the canvas. Large systems, consisting of dozens or even hundreds of address spaces and thousands of tasks, are handled seamlessly.

Integrate produces configuration files that layout the details of the system in a convenient format for printing. This same file is also used when the actual INTEGRITY application is built. Use the “File Open” option to have Integrate read the configuration file and display the contents graphically. Integrate clearly separates the address spaces so that they can be easily viewed and distinguished from one another.

 
ResourceAnalyzer  
 


The MULTI IDE’s ResourceAnalyzer™ is an advanced development and runtime analysis tool that provides extensive visibility into CPU execution at the task and address space level. The ResourceAnalyzer displays critical system information including task stack use, address space memory use, CPU time use history, and memory use history. Data is collected when the target agent is activated by the GUI.

 

 

INTEGRITY shell  


INTEGRITY provides a target shell, accessible via telnet or rlogin, which enables the developer to communicate directly with the target, even before any application code is running. The shell enables loading and unloading of modules independent of MULTI, FTP, ping, listing of tasks and modules, setting network configuration, reading/writing target memory, and performing file system services.

The INTEGRITY EventAnalyzer

The powerful EventAnalyzer™ enables programmers to understand the complex real-time interactions of their system. Some problems simply cannot be detected with standard debugging techniques. Important events such as semaphore calls, task context-switches, and interrupts are logged on the target in real-time. This data is transferred to the host where it’s displayed graphically in the EventAnalyzer GUI. Enabling and disabling event logging, selecting which events to track, and determining the size of target event buffers is fully controllable by the user, both interactively and programmatically.

Live or postmortem mode
Data can be logged either in postmortem mode or live mode. In postmortem mode, data is gathered in a circular buffer on the target with a minimal effect on the rest of the system; users can upload the event log upon request, such as after a failure, and analyze this information on the host to determine the root cause of the failure. In live mode, data is continually sent to the host via TCP/IP, allowing a virtually unlimited history of data to be collected and analyzed as the system is running.

 


Any event displayed in the EventAnalyzer view window can be selected for debugging with a single click, opening a debug window showing that event’s source code, ready to debug.

Powerful GUI
The EventAnalyzer GUI is an effective tool for analyzing and understanding system behavior. It provides convenient
navigation capabilities such as zooming, searching, and the ability to hide or display various events and change the look and feel of task status lines and event icons.

Log user events
The EventAnalyzer also provides the ability to log and view user-defined events. This API can be very powerful since
the user can locate important points in their code and log events to help understand the system better. For example, if the user wants to determine whether a particular piece of code is executed and when, a user event can be logged in the code at this point. Also, extra data can be logged such as the values of particular variables. This kind of data tracking in real time can be invaluable. When the data is later analyzed, the user can search for these user events specifically.

Source code correlation
The EventAnalyzer provides one-click access to source code for debugging. Any event displayed in the EventAnalyzer view window can be selected for debugging with a single click that opens a debug window showing the event’s source code, ready to debug. This makes lowlevel analysis easy and convenient from the high-level system view provided by the EventAnalyzer.

 
Optimized development tools  

Optimizing compilers
Green Hills Software’s world class C, C++, Embedded C++, and Ada 95 Compilers support the INTEGRITY RTOS.


MULTI & AdaMULTI development environments
MULTI® and AdaMULTI™ are fully Integrated Development Environments (IDEs) for embedded applications. MULTI runs on Windows, Unix, Linux, and HP-UX hosts and supports remote debugging to INTEGRITY targets. MULTI provides a direct graphical interface for all Green Hills compilers and supports multi-language development and debugging. MULTI consists of a Project Builder, Source-Level Debugger, Performance Profiler, Runtime Error Checking, Graphical Browser, Text Editor, Version Control System, and Code Coverage Profiler.

Third Party Integrations
INTEGRITY is integrated with a variety of popular third party embedded products, including:
  • SNMP Research—SNMP
  • aicas and Apogee—Java
  • Certicom—encryption (elliptic curve)
  • Visuality Systems—CIFS
  • McObject—in memory database
  • M-System—solid state memory
  • BirdStep—RDBM
  • RTI—NDDS
  • Extended Systems and Stone Street One—Bluetooth
  • Swell Software—Portable Embedded GUI (PEG)
  • Vector Software—Unit Level Testing
  • Objective Interface and PrismTech—CORBA
  • orbs
  • Mindready—IEEE 1394
  • Allegro Software—Web and email support
  • ALT Software and Seaweed—OpenGL/X11/Motif
  • Embedded Planet—hardware platforms
  • Telelogic—UML 2.0 application modeling
  • IBM Rose RealTime—application modeling
  • RadVision—VOIP, SIP, RTP/RTCP
  • Interpeak—IPv4/v6, security,WiFi
  • IP Infusion and NextHop—OSPF, BGP4, MPLS
  • Data Connection—ATM
  • Open Interface—Bluetooth
  • Telelogic—TAU application modeling
  • ACE/TAO Open Source ORB

Heterogeneous multiprocessor debugging
MULTI can debug multiple INTEGRITY tasks simultaneously, each in its own color-coded window. Breakpoints can be set to stop one task while others are allowed to continue. Each task can be running on a different processor, the same processor, the ISIM simulator, or any combination of these environments for true heterogeneous multiprocessor debugging.


Tracepoints for field debugging

INTEGRITY’s unique tracepoint capability enables nonintrusive data collection in running systems. When a task hits a tracepoint, the specified registers and memory are probed and their values stored for later view. The task continues with only brief interruption, making tracepoints ideal for troubleshooting or monitoring a fielded system.


Multiple-task debugging

When used with MULTI or AdaMULTI, INTEGRITY offers advanced multiple-task debugging features including:

  • The ability to debug multiple tasks across multiple address spaces across multiple processors simultaneously, each task has it own debugger window.
  • A task roster window for tracking the tasks in the system and choosing which tasks to debug. The task window shows useful per-task information such as name, execution status, priority, stack size, and stack use (high watermark).
  • The ability to automatically bring up a new debugger window upon task creation.
  • The ability to set task-specific as well as address space-wide (also called “AnyTask” or “AT”) breakpoints.
  • Simultaneous multiple-task debugging support over both serial and ethernet for most boards.
  • Host emulation of file and terminal I/O.
  • The ability to display the relative execution time of all tasks (including the “idle” task).


Field upgrade and debugging
INTEGRITY provides special features that enable fielded systems to be easily and efficiently upgraded and debugged.

  • The MULTI debugger can be attached to the fielded system and then debug it without halting the processor.
  • The system can be placed into Passive Mode so that a user cannot inadvertently alter its behavior. In Passive Mode, halting of tasks and writing to memory or registers is prohibited.
  • INTEGRITY provides capabilities for dynamically loading new software into RAM for live upgrades.
  • INTEGRITY provides capabilities for remotely upgrading the system’s firmware (down to the address space or shared library level of granularity).

 

Kernel awareness
MULTI provides a comprehensive picture of kernel objects, tasks and resources, and their statuses. Even without source, developers can view a complete snapshot of INTEGRITY’s state and can:

  • Debug and view virtual address spaces
  • Debug and view physical address spaces
  • Debug tasks in separate windows
  • Debug and view virtual or physical address space tasks
  • View all kernel objects (tasks, semaphores, address spaces, ...)


Task group breakpoints
INTEGRITY enables breakpoints to perform a variety of actions other than simply halting the task in which they
occurred. Supported actions include halting or resuming any subset of the tasks on the system, or even on an entire cluster of systems. This powerful feature allows the debugger to take a snapshot of all related tasks and data whenever a particular breakpoint is hit, which is extremely useful when debugging a multi-threaded and/or multiprocessor application.


INTEGRITY debug agent
INTEGRITY includes a powerful remote debug agent that enables remote debugging of multi-processor systems, including multiple boards and chassis, all from a single hardware network connection to the host and a single instance of the MULTI debugger. All inter-target communication is via TCP/IP across the VME or cPCI backplane, or
Ethernet, and is portable to other fabrics or mediums.

INTEGRITY RTOS


The powerful INTEGRITY Remote Debug Agent enables remote
debugging of multi-processors systems from a single network
connection.
 
 


» Back to the INTEGRITY page


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