RealView ® DevelopmentSuite CodeWarrior IDE Guide

Version 3.1

Table of Contents

About this book
Intended audience
Using this book
Typographical conventions
Further reading
Feedback on the RealView Development Suite
Feedback on this book
1. Introduction
1.1. About the CodeWarrior IDE
1.2. About the CodeWarrior IDE for RVDS
1.2.1. Unused menu commands and windows
1.2.2. Converting other IDE projects and files
1.2.3. About the CodeWarrior example projects
2. Working with Files
2.1. About working with files
2.2. Creating and opening files
2.2.1. Creating a new file
2.2.2. Opening files from the File menu
2.2.3. Opening files from the project window
2.2.4. Opening header files from an editorwindow
2.3. Saving files
2.3.1. Saving project files
2.3.2. Saving editor files
2.3.3. Saving a backup copy of a file
2.4. Closing files
2.4.1. Closing project files
2.4.2. Closing editor files
2.5. Printing files
2.5.1. Setting print options
2.5.2. Printing a window
2.6. Reverting to the most recently savedversion of a file
2.7. Comparing and merging files and directories
2.7.1. File comparison and merge overview
2.7.2. Choosing files to compare
2.7.3. Applying and unapplying differences
2.7.4. Choosing directories to compare
2.7.5. Comparing XML-formatted projects
3. Working with Projects
3.1. About working with projects
3.1.1. Project structure overview
3.2. Overview of the project window
3.2.1. Project views
3.3. Working with simple projects
3.3.1. Creating a new project
3.3.2. Opening a project
3.3.3. Closing a project
3.3.4. Saving a project
3.3.5. Choosing a default project
3.3.6. Moving a project
3.3.7. Importing and exporting a project asXML
3.4. Working with project windows
3.4.1. Projects displayed using MDI
3.4.2. Projects displayed using FDI
3.5. Working with project workspaces
3.5.1. Saving the current workspace or creatinga new workspace
3.5.2. Opening workspaces
3.5.3. Closing workspaces
3.6. Working with project stationery
3.6.1. The project stationery directory
3.6.2. ARM project stationery
3.7. Managing files in a project
3.7.1. Selecting files and groups
3.7.2. Adding files to a project
3.7.3. Grouping files in a project
3.7.4. Moving files and groups
3.7.5. Removing files and groups
3.7.6. Touching and untouching files
3.7.7. Examining and changing project informationfor a file
3.8. Configuring the CodeWarrior IDE forcomplex or multi-user projects
3.9. Working with multiple build targetsand sub-projects
3.9.1. Overview of complex projects
3.9.2. Creating a new build target
3.9.3. Assigning files to build targets
3.9.4. Changing a build target name
3.9.5. Assigning build target dependencies
3.9.6. Building all targets in a project
3.9.7. Creating sub-projects within projects
4. Working with the ARM Project Stationery
4.1. About the ARM Project stationery
4.1.1. ARM Executable Image
4.1.2. Thumb Executable Image
4.1.3. ARM Object Library
4.1.4. Thumb Object Library
4.1.5. Thumb ARM Interworking Image
4.1.6. Predefined build targets
4.2. Working with an existing ARM project
4.2.1. Opening an existing CodeWarrior project
4.2.2. Building the imagefor your project
4.2.3. Running the image inthe RealView Debugger
4.3. Using the Thumb ARM interworking stationery
4.3.1. Before you begin
4.3.2. Creating an ARM/Thumb interworkingproject
4.3.3. Adding source files to the build targets
4.3.4. Building the image
4.4. Creating binary ROM images
4.5. Creating a project that builds anobject library and ROM images
4.5.1. Summary of the CodeWarrior IDE project
4.5.2. Creating the CodeWarrior IDE project
4.5.3. Setting up the build target for thelibrary
4.5.4. Creating the application build target
4.5.5. Assigning the build target dependencies
4.5.6. Adding the sources to the appropriatebuild targets
4.5.7. Creating the application.binROM image
4.5.8. Creating the application.m32 ROM image
4.6. Creating a project with a sub-project
4.6.1. Creating the library project
4.6.2. Setting up the build target for thelibrary
4.6.3. Adding the sources to the build target
4.6.4. Removing the vfp_support build targetfrom the main project
4.6.5. Adding a project as a sub-project
4.7. Creating your own project stationery
4.7.1. Rules for creating project stationery
4.7.2. Creating project stationery
4.8. Converting ARM projects to Thumb projects
4.9. Converting Executable Image projectsto Library projects
4.10. Compiling and linking a project
4.10.1. Overview of compiling and linking
4.10.2. Compiling files
4.10.3. Making a project
4.10.4. Removing objects from a project
4.11. Processing output
4.11.1. Disassembling code
4.11.2. Converting output ELF images to otherformats
4.11.3. Disassembling output ELF images
4.11.4. Creating libraries with the ARM RealViewLibrarian
4.12. Running batch files with the BatchFile Runner
4.12.1. Configuring file mappings to recognizebatch files
4.12.2. Configuring the batch runner as thepost-linker
4.12.3. Adding batch files and making thebuild target
5. Working with the RealView Debugger
5.1. About working with the RealView Debugger
5.1.1. How the RealView Debugger work withthe CodeWarrior IDE
5.2. Generating debug information
5.2.1. Generating debug information for individualsource files
5.2.2. Generating debug information for allsource files in a build target
5.3. Running and debugging your code
5.3.1. Running a project
5.3.2. Debugging a project
5.4. Using the message window
5.4.1. Overview of the message window
5.4.2. The Errors & Warnings messagewindow
5.4.3. Using the message window
6. Editing Source Code
6.1. About editing source code
6.2. Overview of the editor window
6.3. Configuring the editor window
6.3.1. Setting text size and font
6.3.2. Displaying window controls
6.3.3. Splitting the window into panes
6.3.4. Saving editor window settings
6.4. Editing text
6.4.1. Basic editor window navigation
6.4.2. Basic text editing
6.4.3. Selecting text
6.4.4. Moving text with drag and drop
6.4.5. Balancing punctuation
6.4.6. Formatting code
6.4.7. Completing code
6.4.8. Shifting text left and right
6.4.9. Undoing changes
6.4.10. Controlling color
6.5. Navigating text
6.5.1. Finding a function
6.5.2. Finding symbol definitions
6.5.3. Using markers
6.5.4. Using bookmarks
6.5.5. Going to a specific line
6.5.6. Using Go Back and Go Forward
6.5.7. Opening a related headerfile
7. Searching and Replacing Text
7.1. About finding and replacing text
7.2. Finding and replacing text in a singlefile
7.2.1. Searching for selected text
7.2.2. Finding and replacing text with theFind and Replace dialog box
7.3. Finding and replacing text in multiplefiles
7.3.1. Using multifile search
7.3.2. Using file sets
7.4. Using grep-style regular expressions
7.4.1. Special operators
7.4.2. Using regular expressions
8. Working with the Browser
8.1. About working with the browser
8.1.1. Understanding the browser strategy
8.2. Enabling browser data production
8.2.1. Configuring browser options
8.3. Using browser views
8.3.1. Viewing data by class with the Classbrowser window
8.3.2. Viewing data by type with the Contentswindow
8.3.3. Viewing class hierarchies and inheritancewith the hierarchy view
8.4. Using the browser
8.4.1. Using Go Back and Go Forward
8.4.2. Using the Browser context menu
8.4.3. Finding declarations,definitions, overrides, and multiple implementations
8.4.4. Using symbol name completion
8.4.5. Editing code in thebrowser
8.5. Creating classes and members with browserwizards
8.5.1. Using the New Classwizard
8.5.2. Using the New Member Function wizard
8.5.3. Using the New Data Memberwizard
9. Configuring IDE Options
9.1. About configuring the CodeWarriorIDE
9.2. Overview of the IDE Preferences window
9.2.1. Using the IDE Preferences window
9.3. Choosing general preferences
9.3.1. Configuring build settings
9.3.2. Configuring concurrent compiles
9.3.3. Configuring IDE extras
9.3.4. Configuring plugin settings
9.3.5. Configuring shielded folders
9.3.6. Configuring global source trees
9.4. Choosing editor preferences
9.4.1. Code completion
9.4.2. Code formatting
9.4.3. Editor settings
9.4.4. Font & Tabs
9.4.5. Text Colors
9.5. Setting commands and key bindings
9.5.1. Opening the Customize IDE Commandswindow
9.5.2. Adding your own commands to the CodeWarrior IDE
9.5.3. Customizing key bindings
9.6. Customizing toolbars
9.6.1. Toolbar overview
9.6.2. Showing and hiding a toolbar
9.6.3. Modifying a toolbar
10. Configuring a Build Target
10.1. About configuring a build target
10.1.1. Configuration recommendations
10.1.2. Creating project stationery
10.2. Overview of the Target Settings window
10.2.1. Using the Target Settings window
10.3. Configuring general build target options
10.3.1. Configuring target settings
10.3.2. Configuring accesspaths
10.3.3. Configuring build extras
10.3.4. Configuring runtime settings
10.3.5. Configuring file mappings
10.3.6. Configuring source trees
10.3.7. Configuring the RealView target
10.4. Using the Equivalent Command Linetext box
10.5. Configuring assembler and compilerlanguage settings
10.5.1. Configuring the RealView Assembler
10.5.2. Configuring the RealViewCompiler
10.6. Configuring linker settings
10.6.1. Configuring the RealView Linker
10.6.2. Configuring RealView fromelf
10.7. Configuring editor settings
10.7.1. Custom Keywords
10.8. Configuring the debugger
10.8.1. Configuring the RealView Debugger
10.8.2. Configuring the RealView Runner
10.9. Configuring miscellaneous features
10.9.1. RealView Disassembly Features
A. Running the CodeWarrior IDE from the Command Line and CommandWindow
A.1. Using the CodeWarrior IDE from thecommand line
A.2. Using the CodeWarrior Command Window
A.2.1. Opening the Command Window
A.2.2. Supported commands
B. CodeWarrior IDE Installation and Preference Settings
B.1. The CodeWarrior IDE preferences directory
B.2. Using different versions of the CodeWarriorIDE
B.3. Using the cwfileassoc tool
B.3.1. cwfileassoc command syntax
B.3.2. cwfileassoc example
C. CodeWarrior Project Conversion Utilities
C.1. Converting old CodeWarrior projects
C.1.1. Fixing options that cannot be importedfrom old CodeWarrior projects
C.2. Converting GNU Make files
C.2.1. Importing GNU Make files
C.3. Using an external Make file
C.3.1. Creating an external build project
C.3.2. Configuring an externaldebugger
C.3.3. Adding extra build targets to a project
C.3.4. Building a target
C.4. Converting RealView Debugger projectfiles
C.4.1. Converting RealView Debugger Standardand Library projects
C.4.2. Converting RealView Debugger Containerprojects
D. CodeWarrior IDE Reference
D.1. CodeWarrior IDE menu reference
D.1.1. File menu
D.1.2. Edit menu
D.1.3. View menu
D.1.4. Search menu
D.1.5. Project menu
D.1.6. Browser menu
D.1.7. Window menu
D.1.8. Help menu
D.1.9. View, Toolbars submenu
D.1.10. View, System submenu
D.2. CodeWarrior IDE default key bindings
D.2.1. File and project file commands
D.2.2. Edit commands
D.2.3. View commands
D.2.4. Search commands
D.2.5. Project commands
D.2.6. Window commands
D.2.7. Miscellaneous commands
D.2.8. Editor commands

List of Figures

2.1. New dialog box
2.2. Add new file to project
2.3. Open dialog box
2.4. Group drop-down menu
2.5. Header Files drop-down menu in theproject window
2.6. Find and Open File dialog box
2.7. Save As dialog box
2.8. Save A Copy As dialog box
2.9. Unsaved changes alert
2.10. Revert to a previous file
2.11. File Compare Results window
2.12. Compare Files Setup dialog box
2.13. Applied difference
2.14. Applied all differences
2.15. Compare Files Setup dialog box
2.16. Folder Compare Results window
2.17. Export project as dialog box
3.1. Typical project window
3.2. Project window, view tabs
3.3. Project window, Files view
3.4. Link Order view
3.5. Targets view
3.6. New dialog box
3.7. Open dialog box
3.8. Projects displayed using MDI
3.9. MDI window display options
3.10. Docked and stacked file and projectwindows
3.11. Projects displayed using FDI
3.12. Alert dialog box
3.13. Adding files to a project
3.14. Add Files dialog box
3.15. Create Group dialog box
3.16. Rename Group dialog box
3.17. Expanding groups and subgroups
3.18. Moving a file, below a group
3.19. Moving a file, into a group
3.20. Remove file confirmation dialog box
3.21. Synchronize modification dates
3.22. Project Inspector, Attributes
3.23. Project Inspector, Targets
3.24. Build Target drop-down menu
3.25. Targets view
3.26. Targets tab
3.27. New Target dialog box
3.28. Including files, Target column
3.29. Including files, Project Inspector
3.30. Renaming a build target
3.31. Creating a new build target
3.32. Dragging a dependent build target
3.33. Dependent build target
3.34. Adding files to a dependent buildtarget
3.35. Linking output from a dependent buildtarget
3.36. Building all build targets
3.37. sub-projects within a project
3.38. Multiple build targets in sub-projects
4.1. New dialog box
4.2. ARM Thumb Interworking project, Filesview
4.3. Add Files dialog box
4.4. ARM Thumb Interworking project, Filesview
4.5. New project, vfpsupport
4.6. Release Settings, vfp_support
4.7. Assigning build target dependencies
4.8. Files view, vfp_support
4.9. Adding a sub-project
4.10. Project with sub-project, Files view
4.11. Project with sub-project, Targetsview
4.12. Selecting sub-project build targetsfor building
4.13. RealView Compiler Target configurationpanel
4.14. RealView Assembler PCS configurationpanel
4.15. Selecting the ARM RealView Librarian
4.16. Build Progress window
4.17. Link Order view
4.18. Remove Object Code dialog box
4.19. Adding batch files to mappings
4.20. Configuring the Batch File Runneras post-linker
4.21. Setting the link order
5.1. Debug Info markers
5.2. RealView Compiler Debug / Opt configurationpanel
5.3. Errors & Warnings message window
5.4. Statement arrow pointing to an error
6.1. The editor window
6.2. Header Files drop-down menu
6.3. Functions drop-down menu
6.4. Markers drop-down menu
6.5. Document Settings drop-down menu
6.6. Default toolbar at bottom of editorwindow
6.7. Multiple panes in an editor window
6.8. Code Completion window
6.9. Functions in the Functions drop-downmenu
6.10. Add Marker dialog box
6.11. Example text file with a marker added
6.12. Remove Markers dialog box
6.13. Editor window containing a bookmark
6.14. Line Number dialog box
6.15. Header Files drop-down menu
7.1. Find and Replace dialog box
7.2. Search Results window
7.3. Find in Files dialog box
7.4. In Folders tab, Find in Files dialogbox
7.5. In Projects tab, Find in Files dialogbox
7.6. In Symbolics tab, Find in Files dialogbox
7.7. In Files tab, Find in Files dialogbox
7.8. Save File Set dialog box
7.9. Remove File Sets dialog box
7.10. Regular expression check box
8.1. Build Extras configuration panel
8.2. Class browser window
8.3. Classes pane
8.4. Member functions, data members, anddeclaration for class circle
8.5. Access filters drop-down menu
8.6. Browser access filter icons
8.7. Contents window
8.8. Multi-class hierarchy window
8.9. Ancestor Class drop-down menu
8.10. Go Back and Go Forward toolbar buttons
8.11. Browser context menu for a function
8.12. Using symbol name completion
8.13. Inserting a function template
8.14. Symbol window for a multiply definedfunction
8.15. Symbol window
8.16. New Class wizard: Name and Location
8.17. New C++ Class: Base Classes and Methodsdialog box
8.18. New C++ Class: Include Files dialogbox
8.19. New C++ Class: Targets dialog box
8.20. New Class wizard, summary information
8.21. New C++ Member Function: Member FunctionDeclaration dialog box
8.22. New C++ Member Function: File Locationsdialog box
8.23. New Member Function wizard, summaryinformation
8.24. New C++ Data Member: Data MemberDeclaration dialog box
8.25. New Data Member wizard: File Locations
8.26. New Data Member wizard, summary information
9.1. IDE Preferences window
9.2. Confirmation dialog box
9.3. Build Settings configuration panel
9.4. Concurrent Compiles configurationpanel
9.5. IDE Extras configuration panel
9.6. Plugin Settings configuration panel
9.7. Shielded Folders configuration panel
9.8. Source Trees configuration panel
9.9. Code Completion configuration panel
9.10. Code Formatting configuration panel
9.11. Editor Settings configuration panel
9.12. Font & Tabs configuration panel
9.13. Text Colors configuration panel
9.14. Custom Keywords dialog box
9.15. Customize IDE Commands window, Commandstab
9.16. List of Edit commands
9.17. Configuring a new command
9.18. Mail selection command
9.19. Creating a new group
9.20. Edit Key Bindings dialog box
9.21. Selecting the quote key
9.22. Edit Key Bindings for the Quote Key
9.23. Project window toolbar
9.24. Default toolbar at bottom of editorwindow
9.25. Dragging a toolbar element
10.1. Select build target
10.2. Selecting a Target Settings panel
10.3. Settings confirmation dialog box
10.4. Target Settings configuration panel
10.5. Access Paths configuration panel
10.6. Access paths detail
10.7. Browse for Folder dialog box
10.8. Build Extras configuration panel
10.9. File Mappings configuration panel
10.10. Source Trees configuration panel
10.11. Example Select Access path dialogbox
10.12. RealView Target configuration panel
10.13. Equivalent Command Line text box
10.14. RealView Assembler Target configurationpanel
10.15. RealView Assembler PCS configurationpanel
10.16. RealView Assembler Options configurationpanel
10.17. RealView Assembler Predefines configurationpanel
10.18. RealView Assembler Diagnostics configurationpanel
10.19. RealView Assembler Extras configurationpanel
10.20. RealView Compiler Target configurationpanel
10.21. RealView Compiler PCS / Code Genconfiguration panel
10.22. RealView Compiler Source configurationpanel
10.23. RealView Compiler Debug / Opt configurationpanel
10.24. RealView Compiler Preprocessor configurationpanel
10.25. RealView Compiler Diagnostics configurationpanel
10.26. RealView Compiler Extras configurationpanel
10.27. RealView Linker Output configurationpanel
10.28. RealView Linker Options configurationpanel
10.29. RealView Linker Layout configurationpanel
10.30. RealView Linker Listings configurationpanel
10.31. RealView Linker Diagnostics configurationpanel
10.32. RealView Linker Extras configurationpanel
10.33. RealView FromELF Output configurationpanel
10.34. RealView FromELF Text configurationpanel
10.35. RealView FromELF Diagnostics configurationpanel
10.36. RealView FromELF Extras configurationpanel
10.37. Custom Keywords configuration panel
10.38. RealView Debugger Arguments configurationpanel
10.39. RealView Disassembly configurationpanel
A.1. Command Window
A.2. Running the project (proj) command
C.1. Convert Project dialog box
C.2. New external project
C.3. Setup external project
C.4. Generate external project
C.5. External target settings
C.6. Build extras settings
C.7. New Target dialog box


Words and logos marked with ® or ™ are registered trademarks or trademarksof ARM Limited. Other brands and names mentioned herein may be thetrademarks of their respective owners.

CodeWarrior ® and Metrowerks ® are registered trademarksof Metrowerks, Inc.

PowerParts ™ is a trademarkof Metrowerks, Inc.

Neither the whole nor any part of the information containedin, or the product described in, this document may be adapted orreproduced in any material form except with the prior written permissionof the copyright holder.

The product described in this document is subject to continuousdevelopments and improvements. All particulars of the product andits use contained in this document are given by ARM in good faith.However, all warranties implied or expressed, including but notlimited to implied warranties of merchantability, or fitness forpurpose, are excluded.

This document is intended only to assist the reader in theuse of the product. ARM Limited shall not be liable for any lossor damage arising from the use of any information in this document,or any error or omission in such information, or any incorrect useof the product.

Where the term ARM is used it means “ARM or any of its subsidiariesas appropriate”.


This document is Non-Confidential. The right to use, copyand disclose this document may be subject to license restrictionsin accordance with the terms of the agreement entered into by ARMand the party that ARM delivered this document to.

Product Status

The information in this document is final, that is for a developedproduct.

Revision History
Revision A October1999 Release 1.0 (ADS)
Revision B March2000 Release 1.0.1 (ADS)
Revision C November2000 Release 1.1 (ADS)
Revision D November2001 Release 1.2 (ADS)
Revision E May2005 RVDS 2.2 Release
Revision F March2006 RVDS 3.0 Release
Revision G March 2007 RVDS3.1 Release
Copyright © 1999-2001, 2005-2007 ARM Limited. All rights reserved. ARM DUI 0065G