Tornado

User's Guide

(UNIX Version)

2.0

Edition 1


Contents

Documentation Guide
Overview
Release Information
Tornado Host-Tool Documentation
VxWorks Target-OS Documentation
Online Documentation
Free Software Foundation Documentation
Documentation Conventions
1 Overview
1.1 Introduction
1.2 Cross-Development with Tornado
1.3 VxWorks Target Environment
1.4 Tornado Host Tools
Launcher
Project Management
Compiler
WindSh Command Shell
CrossWind Debugger
Browser
WindView Software Logic Analyzer
VxWorks Target Simulator
1.5 Host-Target Interface
Target Agent
Tornado Target Server
Tornado Registry
Virtual I/O
1.6 GNU ToolKit
1.7 Online Documentation
1.8 Extending Tornado
Published Application Program Interfaces
Optional Products
Third-Party Products
1.9 Customer Services
Customer Support
Training
2 Setup and Startup
2.1 Introduction
2.2 Setting up the Tornado Registry
2.3 The Tornado Host Environment
2.3.1 Environment Variables for Tornado Components
2.3.2 Environment Variable
2.3.3 Environment Variables for Convenience
2.3.4 X Resource Settings
2.4 Target Setup
2.4.1 Example Target Configurations
2.4.2 Networking the Host and Target
Initializing the Host Network Software
Establishing the VxWorks System Name and Address
Giving VxWorks Access to the Host
2.4.3 Configuring the Target Hardware
Boot ROMs and Other Boot Media
Setting Board Jumpers
Board Installation and Power
Connecting the Cables
2.5 Host-Target Communication Configuration
2.5.1 Network Connections
Configuring the Target Agent For Network Connection
2.5.2 END Connections
Configuring the Target Agent For END Connection
2.5.3 Serial-Line Connections
Configuring the Target Agent For Serial Connection
Configuring the Boot Program for Serial Connection
Testing the Connection
Starting the Target Server
2.5.4 The NetROM ROM-Emulator Connection
Configuring the Target Agent for NetROM
Configuring the NetROM
Starting the Target Server
Troubleshooting the NetROM ROM-Emulator Connection
2.6 Booting VxWorks
2.6.1 Default Boot Process
2.6.2 Entering New Boot Parameters
2.6.3 Boot Program Commands
2.6.4 Description of Boot Parameters
2.6.5 Booting With New Parameters
2.6.6 Alternate Booting Procedures
2.6.7 Booting a Target Without a Network
2.6.8 Rebooting
2.7 Connecting a Tornado Target Server
2.8 Launching Tornado
2.9 Tornado Interface Conventions
2.10 Troubleshooting
2.10.1 Things to Check
Hardware Configuration
Booting Problems
Target-Server Problems
2.10.2 Technical Support
3 Launcher
3.1 Introduction
3.2 The Tornado Launcher
3.3 Anatomy of the Launcher Window
3.4 Tools and Targets
3.4.1 Selecting a Target Server
3.4.2 Launching a Tool
3.5 Managing Target Servers
3.5.1 Configuring a Target Server
Simple Server Configuration for Networked Targets
Simple Server Configuration for WDB Serial Targets
Saved Configurations
Target-Server Action Buttons
Target-Server Configuration Options
3.5.2 Sharing and Reserving Target Servers
3.6 Tornado Central Services
3.6.1 Support and Information
3.6.2 Administrative Activities
3.7 Tcl: Customizing the Launcher
3.7.1 Tcl: Launcher Initialization File
3.7.2 Tcl: Launcher Customization Examples
Re-Reading Tcl Initialization
Quit Launcher Without Prompting
An Open Command for the File Menu
4 Projects
4.1 Introduction
4.2 Creating a Downloadable Application
4.2.1 Creating a Project for a Downloadable Application
4.2.2 Project Files for a Downloadable Application
4.2.3 Working With Application Files
Creating, Adding, and Removing Application Files
Displaying and Modifying File Properties
Opening, Saving, and Closing Files
4.2.4 Building a Downloadable Application
Calculating Makefile Dependencies
Build Specifications
Building an Application
4.2.5 Downloading and Running an Application
4.2.6 Adding and Removing Projects
4.3 Creating a Custom VxWorks Image
4.3.1 Creating a Project for VxWorks
4.3.2 Project Files for VxWorks
4.3.3 Configuring VxWorks Components
Finding VxWorks Components and Configuration Macros
Displaying Descriptions and Online Help for Components
Including and Excluding Components
Component Conflicts
Changing Component Parameters
Estimating Total Component Size
4.3.4 Selecting the VxWorks Image Type
4.3.5 Building VxWorks
4.3.6 Booting VxWorks
4.4 Creating a Bootable Application
4.4.1 Using Automated Scaling of VxWorks
4.4.2 Adding Application Initialization Routines
4.5 Working With Build Specifications
4.5.1 Changing a Build Specification
Custom Makefile Rules
Makefile Macros
Compiler Options
Assembler Options
Link Order Options
Linker Options
4.5.2 Creating New Build Specifications
4.5.3 Selecting a Specification for the Current Build
4.6 Configuring the Target-Host Communication Interface
Configuration for an END Driver Connection
Configuration for Integrated Target Simulators
Configuration for NetROM Connection
Configuration for Network Connection
Configuration for Serial Connection
Configuration for tyCoDrv Connection
Scaling the Target Agent
Configuring the Target Agent for Exception Hooks
Starting the Agent Before the Kernel
4.7 Configuring and Building a VxWorks Boot Program
5 Shell
5.1 Introduction
5.2 Using the Shell
5.2.1 Starting and Stopping the Tornado Shell
5.2.2 Shell Features
5.2.3 Invoking Built-In Shell Routines
Task Management
Task Information
System Information
System Modification and Debugging
C++ Development
Object Display
Network Status Display
Resolving Name Conflicts between Host and Target
5.2.4 Running Target Routines from the Shell
5.2.5 Rebooting from the Shell
5.2.6 Using the Shell for System Mode Debugging
5.2.7 Interrupting a Shell Command
5.3 The Shell C-Expression Interpreter
5.3.1 I/O Redirection
5.3.2 Data Types
5.3.3 Lines and Statements
5.3.4 Expressions
Literals
Variable References
Operators
Function Calls
Subroutines as Commands
Arguments to Commands
Task References
5.3.5 The "Current" Task and Address
5.3.6 Assignments
Typing and Assignment
Automatic Creation of New Variables
5.3.7 Comments
5.3.8 Strings
5.3.9 Ambiguity of Arrays and Pointers
5.3.10 Pointer Arithmetic
5.3.11 C Interpreter Limitations
5.3.12 C-Interpreter Primitives
5.3.13 Terminal Control Characters
5.3.14 Redirection in the C Interpreter
Ambiguity Between Redirection and C Operators
The Nature of Redirection
Scripts: Redirecting Shell I/O
C-Interpreter Startup Scripts
5.4 C++ Interpretation
5.4.1 Overloaded Function Names
5.4.2 Automatic Name Demangling
5.5 Shell Line Editing
5.6 Object Module Load Path
5.7 Tcl: Shell Interpretation
5.7.1 Tcl: Controlling the Target
Tcl: Calling Target Routines
Tcl: Passing Values to Target Routines
5.7.2 Tcl: Calling Under C Control
5.7.3 Tcl: Tornado Shell lnitialization
5.8 The Shell Architecture
5.8.1 Controlling the Target from the Host
5.8.2 Shell Components
5.8.3 Layers of Interpretation
6 Browser
6.1 A System-Object Browser
6.2 Starting the Browser
6.3 Anatomy of the Target Browser
6.4 Browser Menus and Buttons
6.5 Data Panels
6.6 Object Browsers
6.6.1 The Task Browser
6.6.2 The Semaphore Browser
6.6.3 The Message-Queue Browser
6.6.4 The Memory-Partition Browser
6.6.5 The Watchdog Browser
6.6.6 The Class Browser
6.7 The Module Browser
6.8 The Vector Table Window
6.9 The Spy Window
6.10 The Stack-Check Window
6.11 Browser Displays and Target Link Speed
6.12 Troubleshooting with the Browser
6.12.1 Memory Leaks
6.12.2 Stack Overflow
6.12.3 Memory Fragmentation
6.12.4 Priority Inversion
6.13 Tcl: the Browser Initialization File
7 Debugger
7.1 Introduction
7.2 Starting CrossWind
7.3 A Sketch of CrossWind
7.4 CrossWind in Detail
7.4.1 Graphical Controls
Display Manipulation
CrossWind Menus
CrossWind Buttons
7.4.2 Debugger Command Panel: GDB
GDB Initialization Files
What Modules to Debug
What Code to Display
Executing Your Program
Application I/O
Graphically Enhanced Commands
Managing Targets
Command-Interaction Facilities
Extended Debugger Commands
Extended Debugger Variables
7.5 System-Mode Debugging
7.5.1 Entering System Mode
7.5.2 Thread Facilities in System Mode
Displaying Summary Thread Information
Switching Threads Explicitly
Thread-Specific Breakpoints
Switching Threads Implicitly
7.6 Tcl: Debugger Automation
7.6.1 Tcl: A Simple Debugger Example
7.6.2 Tcl: Specialized GDB Commands
7.6.3 Tcl: Invoking GDB Facilities
7.6.4 Tcl: A Linked-List Traversal Macro
7.7 Tcl: CrossWind Customization
7.7.1 Tcl: Debugger Initialization Files
7.7.2 Tcl: Passing Control between the Two CrossWind Interpreters
7.7.3 Tcl: Experimenting with CrossWind Extensions
Tcl: "This" Buttons for C++
Tcl: A List Command for the File Menu
Tcl: An Add-Symbols Command for the File Menu
8 Customization
8.1 Introduction
8.2 Setting Download Options
8.3 Setting Version Control Options
8.4 Customizing the Tools Menu
8.4.1 The Customize Tools Dialog Box
Macros for Customized Menu Commands
8.4.2 Examples of Tools Menu Customization
Version Control
Alternate Editor
Binary Utilities
World Wide Web
8.5 Alternate Default Editor
8.6 Tcl Customization Files
Tornado Initialization
HTML Help Initialization
9 Customer Service
9.1 Introduction
9.2 WRS Support Services
9.2.1 The Customer Information Form
9.2.2 Sending a Technical Support Request (TSR)
9.3 WRS Broadcasts on the World Wide Web
Appendices
A Directories and Files
A.1 Introduction
A.2 Host Directories and Files
A.3 Target Directories and Files
A.4 Initialization and State-Information Files
B Tcl
B.1 Why Tcl?
B.2 A Taste of Tcl
B.2.1 Tcl Variables
B.2.2 Lists in Tcl
B.2.3 Associative Arrays
B.2.4 Command Substitution
B.2.5 Arithmetic
B.2.6 I/O, Files, and Formatting
B.2.7 Procedures
B.2.8 Control Structures
B.2.9 Tcl Error Handling
B.2.10 Integrating Tcl and C Applications
B.3 Tcl Coding Conventions
B.3.1 Tcl Module Layout
B.3.2 Tcl Procedure Layout
B.3.3 Tcl Code Outside Procedures
B.3.4 Declaration Formats
Variables
Procedures
B.3.5 Code Layout
Vertical Spacing
Horizontal Spacing
Indentation
Comments
B.3.6 Naming Conventions
B.3.7 Tcl Style
C Tornado Tools Reference
D Utilities Reference
E X Resources
E.1 Predefined X Resource Collections
E.2 Resource Definition Files
Index