Tornado® 2.2
USER’S GUIDE
UNIX VERSION Copyright 2002 Wind River Systems, Inc. ALL RIGHTS RESERVED. No part of this publication may be copied in any form, by photocopy, microfilm, retrieval system, or by any other means now known or hereafter invented without the prior written permission of Wind River Systems, Inc.
AutoCode, Embedded Internet, Epilogue, ESp, FastJ, IxWorks, MATRIXX, pRISM, pRISM+, pSOS, RouterWare, Tornado, VxWorks, wind, WindNavigator, Wind River Systems, WinRouter, and Xmath are registered trademarks or service marks of Wind River Systems, Inc. Attaché Plus, BetterState, Doctor Design, Embedded Desktop, Emissary, Envoy, How Smart Things Think, HTMLWorks, MotorWorks, OSEKWorks, Personal JWorks, pSOS+, pSOSim, pSOSystem, SingleStep, SNiFF+, VxDCOM, VxFusion, VxMP,VxSim, VxVMI, Wind Foundation Classes, WindC++, WindManage, WindNet, Wind River, WindSurf, and WindView are trademarks or service marks of Wind River Systems, Inc. This is a partial list. For a complete list of Wind River trademarks and service marks, see the following URL: http://www.windriver.com/corporate/html/trademark.html Use of the above marks without the express written permission of Wind River Systems, Inc. is prohibited. All other trademarks mentioned herein are the property of their respective owners.
Corporate Headquarters Wind River Systems, Inc. 500 Wind River Way Alameda, CA 94501-1153 U.S.A. toll free (U.S.): 800/545-WIND telephone: 510/748-4100 facsimile: 510/749-2010
For additional contact information, please visit the Wind River URL: http://www.windriver.com For information on how to contact Customer Support, please visit the following URL: http://www.windriver.com/support
Tornado User’s Guide, 2.2
30 Jul 02 Part #: DOC-14208-2D-01 1 Overview ...... 1
2 Setup and Startup ...... 15
3 Launcher ...... 65
4 Projects ...... 93
5 Command-Line Configuration and Build ...... 169
6 VxSim ...... 217
7 Shell ...... 245
8 Browser ...... 307
9 Debugger ...... 333
10 Building VxDCOM Applications ...... 381
11 Customization ...... 403
A Directories and Files ...... 421
B Makefile Details ...... 435
C Tcl ...... 441
D Coding Conventions ...... 449
E X Resources ...... 483
F VxWorks Initialization Timeline ...... 485
iii iv Contents
1 Overview ...... 1
1.1 Introduction ...... 1
1.2 Cross-Development with Tornado ...... 3
1.3 VxWorks Target Environment ...... 4
1.4 Tornado Host Tools ...... 5 Launcher ...... 5 Project Management ...... 6 Compiler ...... 6 WindSh Command Shell ...... 6 CrossWind Debugger ...... 7 Browser ...... 7 WindView Software Logic Analyzer ...... 8 VxSim Target Simulator ...... 8
1.5 Host-Target Interface ...... 9 Target Agent ...... 9 Tornado Target Server ...... 10 Tornado Registry ...... 11 Virtual I/O ...... 11
1.6 Customer Services ...... 12
v Tornado 2.2 User’s Guide
2 Setup and Startup ...... 15
2.1 Introducing Tornado ...... 15
2.2 Setting up the Tornado Registry ...... 19
2.3 The Tornado Host Environment ...... 20 2.3.1 Environment Variables for Tornado Components ...... 21 2.3.2 Environment Variable For Solaris Hosts ...... 22 2.3.3 Environment Variables for Convenience ...... 23 2.3.4 X Resource Settings ...... 23
2.4 Setting Up the Default Target Hardware ...... 24 2.4.1 Default Target Configuration ...... 24 2.4.2 Networking the Host and Target ...... 25 Initializing the Host Network Software ...... 26 Establishing the VxWorks System Name and Address ...... 26 Giving VxWorks Access to the Host ...... 27 2.4.3 Configuring the Target Hardware ...... 27 Setting Up a Boot Mechanism ...... 28 Setting Board Jumpers ...... 29 Board Installation and Power ...... 29 Connecting the Cables ...... 30
2.5 Host-Target Communication Configuration ...... 31 2.5.1 Network Connections ...... 31 Configuring the Target Agent for Network Connection ...... 31 2.5.2 END Connections ...... 32 Configuring the Target Agent for END Connection ...... 32 2.5.3 Serial-Line Connections ...... 32 Configuring the Target Agent for Serial Connection ...... 33 Configuring the Boot Program for Serial Connection ...... 33 Testing the Connection ...... 33 Starting the Target Server ...... 35
vi Contents
2.5.4 The NetROM ROM-Emulator Connection ...... 35 Configuring the Target Agent for NetROM ...... 36 Configuring the NetROM ...... 36 Starting the Target Server ...... 40 Troubleshooting the NetROM ROM-Emulator Connection ...... 41 2.5.5 The Transparent Mode Driver (TMD) ...... 43 Configuring the Target Agent for TMD ...... 43 Configuring visionICE II/visionPROBE II ...... 44 Starting the Target Server ...... 45
2.6 Booting VxWorks ...... 46 2.6.1 Default Boot Process ...... 47 2.6.2 Entering New Boot Parameters ...... 48 2.6.3 Boot Program Commands ...... 49 2.6.4 Description of Boot Parameters ...... 50 2.6.5 Booting With New Parameters ...... 52 2.6.6 Alternate Booting Procedures ...... 54 2.6.7 Booting a Target Without a Network ...... 55 2.6.8 Rebooting VxWorks ...... 55
2.7 Connecting a Tornado Target Server ...... 56
2.8 Launching Tornado ...... 57
2.9 Tornado Interface Conventions ...... 58
2.10 Troubleshooting ...... 59 2.10.1 Things to Check ...... 59 Hardware Configuration ...... 59 Booting Problems ...... 60 Target-Server Problems ...... 63 2.10.2 Technical Support ...... 64
vii Tornado 2.2 User’s Guide
3 Launcher ...... 65
3.1 Introduction ...... 65
3.2 The Tornado Launcher ...... 65
3.3 Anatomy of the Launcher Window ...... 66
3.4 Tools and Targets ...... 68 3.4.1 Selecting a Target Server ...... 69 3.4.2 Launching a Tool ...... 71
3.5 Managing Target Servers ...... 72 3.5.1 Configuring a Target Server ...... 73 Simple Server Configuration for Networked Targets ...... 75 Simple Server Configuration for WDB Serial Targets ...... 75 Saved Configurations ...... 75 Target-Server Action Buttons ...... 76 Target-Server Configuration Options ...... 76 3.5.2 Sharing and Reserving Target Servers ...... 82
3.6 Tornado Central Services ...... 83 3.6.1 Support and Information ...... 84 3.6.2 Administrative Activities ...... 84
3.7 Tcl: Customizing the Launcher ...... 85 3.7.1 Tcl: Launcher Initialization File ...... 85 3.7.2 Tcl: Launcher Customization Examples ...... 86 Re-Reading Tcl Initialization ...... 86 Quit Launcher Without Prompting ...... 87 An Open Command for the File Menu ...... 88
4 Projects ...... 93
4.1 Introduction ...... 93
4.2 Planning Your Projects ...... 99
viii Contents
4.2.1 Getting a Functional BSP ...... 99 Using a Wind River or Third-Party BSP ...... 100 Using a Custom BSP For Custom Hardware ...... 100 Using the Simulator BSP ...... 101 4.2.2 Creating a Bootable Project Based On a BSP ...... 101 Using the VxWorks Simulator ...... 101 Using a Real Target ...... 102 Image Size Considerations ...... 102 4.2.3 Developing and Adding Your Application Source Code ...... 102 Adding Existing Application Source Code ...... 102 Creating New Application Source Code ...... 103 Building With Custom Build Rules ...... 103 Developing Architecture-Independent Applications ...... 104 Using Configuration Management ...... 105 Configuring VxWorks ...... 105 Structuring Your Projects ...... 105
4.3 Creating a Downloadable Application ...... 112 4.3.1 Creating a Project for a Downloadable Application ...... 112 4.3.2 Project Files for a Downloadable Application ...... 116 4.3.3 Working With Application Files ...... 116 Creating, Adding, and Removing Application Files ...... 117 Displaying and Modifying File Properties ...... 118 Opening, Saving, and Closing Files ...... 119 4.3.4 Building a Downloadable Application ...... 119 Calculating Makefile Dependencies ...... 120 Build Specifications ...... 122 Building an Application ...... 124 4.3.5 Downloading an Application ...... 126 4.3.6 Adding and Removing Projects ...... 127
4.4 Creating a Custom VxWorks Image ...... 127 4.4.1 Creating a Project for VxWorks ...... 128 4.4.2 Project Files for VxWorks ...... 132
ix Tornado 2.2 User’s Guide
4.4.3 Configuring VxWorks Components ...... 134 Finding VxWorks Components and Configuration Macros ...... 136 Displaying Descriptions and Online Help for Components ...... 136 Including and Excluding Components ...... 137 Component Conflicts ...... 140 Changing Component Parameters ...... 141 Estimating Total Component Size ...... 142 4.4.4 Selecting the VxWorks Image Type ...... 143 4.4.5 Building VxWorks ...... 144 Using the Build Menu ...... 144 Using the Command Line ...... 146 4.4.6 Booting VxWorks ...... 146
4.5 Creating a Bootable Application ...... 147 4.5.1 Using Automated Scaling of VxWorks ...... 147 4.5.2 Adding Application Initialization Routines ...... 147
4.6 Working With Build Specifications ...... 148 4.6.1 Changing a Build Specification ...... 149 Custom Makefile Rules ...... 150 Makefile Macros ...... 150 Compiler Options ...... 151 Assembler Options ...... 153 Link Order Options ...... 153 Linker Options ...... 154 4.6.2 Creating New Build Specifications ...... 155 4.6.3 Selecting a Specification for the Current Build ...... 155
4.7 Configuring the Target-Host Communication Interface ...... 156 Configuration for an END Driver Connection ...... 157 Configuration for Integrated Target Simulators ...... 158 Configuration for NetROM Connection ...... 158 Configuration for Network Connection ...... 159 Configuration for Serial Connection ...... 160 Configuration for tyCoDrv Connection ...... 161 Scaling the Target Agent ...... 161
x Contents
Configuring the Target Agent for Exception Hooks ...... 162 Starting the Agent Before the Kernel ...... 162
4.8 Configuring and Building a VxWorks Boot Program ...... 164
4.9 Building a Custom Boot ROM ...... 167
5 Command-Line Configuration and Build ...... 169
5.1 Introduction ...... 169
5.2 Building, Loading, and Unloading Application Modules ...... 170 5.2.1 Using VxWorks Header Files ...... 171 VxWorks Header File: vxWorks.h ...... 171 Other VxWorks Header Files ...... 172 ANSI Header Files ...... 172 ANSI C++ Header Files ...... 172 The -I Compiler Flag ...... 172 VxWorks Nested Header Files ...... 173 Internal Header Files ...... 173 VxWorks Private Header Files ...... 174 5.2.2 Compiling Application Modules Using GNU Tools ...... 174 The GNU Tools ...... 175 Cross-Development Commands ...... 175 Defining the CPU Type ...... 176 Compiling C Modules With the GNU Compiler ...... 177 Compiling C++ Modules ...... 178 5.2.3 Compiling Application Modules Using Diab Tools ...... 179 The Diab Tools ...... 179 Cross-Development Commands ...... 180 Defining the CPU Type ...... 180 Compiling C Modules With the Diab Compiler ...... 181 Compiling C++ Modules ...... 183 5.2.4 Static Linking (Optional) ...... 183 5.2.5 Downloading an Application Module ...... 184 5.2.6 Module IDs and Group Numbers ...... 185 5.2.7 Unloading Modules ...... 186
xi Tornado 2.2 User’s Guide
5.3 Configuring VxWorks ...... 186 5.3.1 The Board Support Package (BSP) ...... 187 The System Library ...... 188 Virtual Memory Mapping ...... 189 Configuration Files ...... 189 BSP Initialization Modules ...... 189 BSP Documentation ...... 189 5.3.2 The Environment Variables ...... 190 5.3.3 The Configuration Header Files ...... 191 The Global Configuration Header File: configAll.h ...... 191 The BSP-specific Configuration Header File: config.h ...... 191 Selection of Optional Features ...... 192 5.3.4 The Configuration Module: usrConfig.c ...... 192 5.3.5 Alternative VxWorks Configurations ...... 193 Scaling Down VxWorks ...... 193 Executing VxWorks from ROM ...... 195
5.4 Building a VxWorks System Image ...... 197 5.4.1 Available VxWorks Images ...... 197 5.4.2 Rebuilding VxWorks with make ...... 199 5.4.3 Including Customized VxWorks Code ...... 200 5.4.4 Linking the System Modules ...... 201 5.4.5 Creating the System Symbol Table Module ...... 203
5.5 Makefiles for BSPs and Applications ...... 203 5.5.1 Make Variables ...... 205 Variables for Compilation Options ...... 206 Variables for BSP Parameters ...... 207 Variables for Customizing the Run-Time ...... 208 5.5.2 Using Makefile Include Files for Application Modules ...... 209
5.6 Creating Bootable Applications ...... 210 5.6.1 Linking Bootable Applications ...... 210
xii Contents
5.6.2 Creating a Standalone VxWorks System with a Built-in Symbol Table ...... 211 5.6.3 Creating a VxWorks System in ROM ...... 212
5.7 Building Projects From a BSP ...... 214
6 VxSim ...... 217
6.1 Introduction ...... 217
6.2 Integrated Simulator ...... 218 Installation and Configuration ...... 219 Starting VxSim ...... 219 Changing the Simulator Boot Line ...... 219 Rebooting VxSim ...... 220 Exiting VxSim ...... 220 Back End ...... 220 System-Mode Debugging ...... 221 File Systems ...... 221 Symbols ...... 221
6.3 Building Applications ...... 222 Defining the CPU Type ...... 222 The Toolkit Environment ...... 222 Compiling C and C++ Modules ...... 222 Linking an Application to VxSim ...... 223
6.4 Architecture Considerations ...... 223 Supported Configurations ...... 223 Endianess ...... 223 Simulator Timeout ...... 224 The BSP Directory ...... 224 Interrupts ...... 225 Clock and Timing Issues ...... 226
6.5 Configuring the VxSim Full Simulator ...... 227 Installing VxSim Network Drivers ...... 228 Configuring VxSim for Networking ...... 234 Running Multiple Simulators ...... 235
xiii Tornado 2.2 User’s Guide
System Mode Debugging ...... 236 IP Addressing ...... 236 Setting up the Shared Memory Network ...... 239
7 Shell ...... 245
7.1 Introduction ...... 245
7.2 Using the Shell ...... 247 7.2.1 Starting and Stopping the Tornado Shell ...... 247 7.2.2 Downloading From the Shell ...... 248 7.2.3 Shell Features ...... 249 7.2.4 Invoking Built-In Shell Routines ...... 253 Task Management ...... 254 Task Information ...... 254 System Information ...... 257 System Modification and Debugging ...... 260 C++ Development ...... 262 Object Display ...... 263 Network Status Display ...... 264 Resolving Name Conflicts between Host and Target ...... 265 7.2.5 Running Target Routines from the Shell ...... 265 7.2.6 Rebooting from the Shell ...... 266 7.2.7 Using the Shell for System Mode Debugging ...... 267 7.2.8 Interrupting a Shell Command ...... 271
7.3 The Shell C-Expression Interpreter ...... 272 7.3.1 I/O Redirection ...... 272 7.3.2 Data Types ...... 273 7.3.3 Lines and Statements ...... 275 7.3.4 Expressions ...... 275 Literals ...... 275 Variable References ...... 276 Operators ...... 276 Function Calls ...... 277
xiv Contents
Subroutines as Commands ...... 278 Arguments to Commands ...... 278 Task References ...... 279 7.3.5 The “Current” Task and Address ...... 279 7.3.6 Assignments ...... 280 Typing and Assignment ...... 280 Automatic Creation of New Variables ...... 281 7.3.7 Comments ...... 281 7.3.8 Strings ...... 281 7.3.9 Ambiguity of Arrays and Pointers ...... 282 7.3.10 Pointer Arithmetic ...... 283 7.3.11 C Interpreter Limitations ...... 283 7.3.12 C-Interpreter Primitives ...... 284 7.3.13 Terminal Control Characters ...... 286 7.3.14 Redirection in the C Interpreter ...... 286 Ambiguity Between Redirection and C Operators ...... 287 The Nature of Redirection ...... 287 Scripts: Redirecting Shell I/O ...... 288 C-Interpreter Startup Scripts ...... 289
7.4 C++ Interpretation ...... 290 7.4.1 Overloaded Function Names ...... 290 7.4.2 Automatic Name Demangling ...... 292
7.5 Shell Line Editing ...... 292
7.6 Object Module Load Path ...... 295
7.7 Tcl: Shell Interpretation ...... 297 7.7.1 Tcl: Controlling the Target ...... 298 Tcl: Calling Target Routines ...... 299 Tcl: Passing Values to Target Routines ...... 299 7.7.2 Tcl: Calling Under C Control ...... 299
xv Tornado 2.2 User’s Guide
7.7.3 Tcl: Tornado Shell lnitialization ...... 300
7.8 The Shell Architecture ...... 301 7.8.1 Controlling the Target from the Host ...... 301 7.8.2 Shell Components ...... 303 7.8.3 Layers of Interpretation ...... 304
8 Browser ...... 307
8.1 A System-Object Browser ...... 307
8.2 Starting the Browser ...... 308
8.3 Anatomy of the Target Browser ...... 309
8.4 Browser Menus and Buttons ...... 310
8.5 Data Panels ...... 312
8.6 Object Browsers ...... 313 8.6.1 The Task Browser ...... 314 8.6.2 The Semaphore Browser ...... 315 8.6.3 The Message-Queue Browser ...... 316 8.6.4 The Memory-Partition Browser ...... 318 8.6.5 The Watchdog Browser ...... 319 8.6.6 The Class Browser ...... 320
8.7 The Module Browser ...... 320
8.8 The Vector Table Window ...... 323
8.9 The Spy Window ...... 324
8.10 The Stack-Check Window ...... 325
8.11 Browser Displays and Target Link Speed ...... 327
xvi Contents
8.12 Troubleshooting with the Browser ...... 327 8.12.1 Memory Leaks ...... 327 8.12.2 Stack Overflow ...... 328 8.12.3 Memory Fragmentation ...... 328 8.12.4 Priority Inversion ...... 329
8.13 Tcl: the Browser Initialization File ...... 331
9 Debugger ...... 333
9.1 Introduction ...... 333
9.2 Starting CrossWind ...... 334
9.3 A Sketch of CrossWind ...... 334
9.4 CrossWind in Detail ...... 336 9.4.1 Graphical Controls ...... 336 Display Manipulation ...... 337 CrossWind Menus ...... 338 CrossWind Buttons ...... 344 9.4.2 Debugger Command Panel: GDB ...... 353 GDB Initialization Files ...... 353 What Modules to Debug ...... 354 What Code to Display ...... 355 Executing Your Program ...... 356 Application I/O ...... 356 Graphically Enhanced Commands ...... 357 Managing Targets ...... 358 Command-Interaction Facilities ...... 358 Extended Debugger Commands ...... 359 Extended Debugger Variables ...... 360
9.5 System-Mode Debugging ...... 362 9.5.1 Entering System Mode ...... 362
xvii Tornado 2.2 User’s Guide
9.5.2 Thread Facilities in System Mode ...... 363 Displaying Summary Thread Information ...... 363 Switching Threads Explicitly ...... 364 Thread-Specific Breakpoints ...... 365 Switching Threads Implicitly ...... 366 9.5.3 Configuring VxWorks for System Mode Debugging ...... 366 9.5.4 Tcl: Debugger Automation ...... 367 9.5.5 Tcl: A Simple Debugger Example ...... 368 9.5.6 Tcl: Specialized GDB Commands ...... 369 9.5.7 Tcl: Invoking GDB Facilities ...... 370 9.5.8 Tcl: A Linked-List Traversal Macro ...... 373
9.6 Tcl: CrossWind Customization ...... 374 9.6.1 Tcl: Debugger Initialization Files ...... 375 9.6.2 Tcl: Passing Control between the Two CrossWind Interpreters .. 376 9.6.3 Tcl: Experimenting with CrossWind Extensions ...... 377 Tcl: “This” Buttons for C++ ...... 377 Tcl: A List Command for the File Menu ...... 378 Tcl: An Add-Symbols Command for the File Menu ...... 380
10 Building VxDCOM Applications ...... 381
10.1 Introduction ...... 381
10.2 The VxDCOM Development Process ...... 382
10.3 Configuring a VxDCOM Bootable Image ...... 383 10.3.1 Adding VxDCOM Component Support ...... 383 10.3.2 Configuring the DCOM Parameters ...... 384
10.4 Using the VxDCOM Wizard ...... 385 10.4.1 Choosing the Project Type ...... 385 10.4.2 Creating a COM/DCOM Skeleton Project ...... 386 Defining the CoClass ...... 386
xviii Contents
Choosing CoClass Options ...... 390 Generating the Skeleton Files ...... 391 10.4.3 Importing Existing Files into a New Project ...... 392 Porting Existing Applications ...... 392 Editing IDL Files ...... 392 Adding Non-Automation Types ...... 393
10.5 The Generated Output ...... 393 Output Directories ...... 393 Project Work Files ...... 394 Server Output Files ...... 395 Client Output Files ...... 396
10.6 Implementing the Server and Client ...... 396
10.7 Building and Linking the Application ...... 397
10.8 Registering, Deploying, and Running Your Application ...... 398 10.8.1 Registering Proxy DLLs on Windows ...... 398 10.8.2 Register the Type Library ...... 399 10.8.3 Registering the Server ...... 399 10.8.4 Authenticating the Server ...... 400 10.8.5 Activating the Server ...... 401
11 Customization ...... 403
11.1 Introduction ...... 403
11.2 Setting Download Options ...... 403
11.3 Setting Project Options ...... 405
11.4 Setting Version Control Options ...... 406
11.5 Installation and Licenses ...... 408
xix Tornado 2.2 User’s Guide
11.6 Customizing the Tools Menu ...... 409 11.6.1 The Customize Tools Dialog Box ...... 409 Macros for Customized Menu Commands ...... 412 11.6.2 Examples of Tools Menu Customization ...... 413 Version Control ...... 414 Alternate Editor ...... 415 Binary Utilities ...... 415 World Wide Web ...... 416
11.7 Alternate Default Editor ...... 417
11.8 Tcl Customization Files ...... 417 Tornado Initialization ...... 417 HTML Help Initialization ...... 418
Appendices ...... 419
A Directories and Files ...... 421
A.1 Introduction ...... 421
A.2 Host Directories and Files ...... 422
A.3 Target Directories and Files ...... 424
A.4 Initialization and State-Information Files ...... 432
B Makefile Details ...... 435
B.1 Introduction ...... 435
B.2 Customizing the VxWorks Makefile ...... 435
B.3 Commonly Used Makefile Macros ...... 436
C Tcl ...... 441
C.1 Why Tcl? ...... 441
xx Contents
C.2 Introduction to Tcl ...... 442 C.2.1 Tcl Variables ...... 442 C.2.2 Lists in Tcl ...... 443 C.2.3 Associative Arrays ...... 444 C.2.4 Command Substitution ...... 445 C.2.5 Arithmetic ...... 445 C.2.6 I/O, Files, and Formatting ...... 445 C.2.7 Procedures ...... 446 C.2.8 Control Structures ...... 447 C.2.9 Tcl Error Handling ...... 448 C.2.10 Integrating Tcl and C Applications ...... 448
D Coding Conventions ...... 449
D.1 Introduction ...... 449
D.2 File Heading ...... 450
D.3 C Coding Conventions ...... 451 D.3.1 C Module Layout ...... 451 D.3.2 C Subroutine Layout ...... 453 D.3.3 C Declaration Formats ...... 454 D.3.4 C Code Layout ...... 457 D.3.5 C Naming Conventions ...... 460 D.3.6 C Style ...... 462 D.3.7 C Header File Layout ...... 463 D.3.8 Documentation Format Conventions for C ...... 466
D.4 Tcl Coding Conventions ...... 470 D.4.1 Tcl Module Layout ...... 470 D.4.2 Tcl Procedure Layout ...... 471
xxi Tornado 2.2 User’s Guide
D.4.3 Tcl Code Outside Procedures ...... 473 D.4.4 Declaration Formats ...... 474 D.4.5 Code Layout ...... 475 D.4.6 Naming Conventions ...... 478 D.4.7 Tcl Style ...... 479
E X Resources ...... 483
E.1 Predefined X Resource Collections ...... 483
E.2 Resource Definition Files ...... 483
F VxWorks Initialization Timeline ...... 485
F.1 Introduction ...... 485
F.2 The VxWorks Entry Point: sysInit( ) ...... 486
F.3 The Initial Routine: usrInit( ) ...... 486
F.4 Initializing the Kernel ...... 488
F.5 Initializing the Memory Pool ...... 489
F.6 The Initial Task: usrRoot( ) ...... 490
F.7 The System Clock Routine: usrClock( ) ...... 496
F.8 Initialization Summary ...... 496
F.9 Initialization Sequence for ROM-Based VxWorks ...... 499
Index ...... 501
xxii 1 Overview
1.1 Introduction
Tornado is an integrated environment for software cross-development. It provides an efficient way to develop real-time and embedded applications with minimal intrusion on the target system. Tornado consists of the following elements: