Chapter 1 Introduction
1.4 CodeWarrior Development Studio tools
This section talks about some important tools of CodeWarrior Development Studio.
Programming for StarCore 3900FP DSP processors is much like programming for any other CodeWarrior platform target. If you have not used CodeWarrior tools before, start by studying the Eclipse IDE, which is used to host the tools.
Note that CodeWarrior Development Studio for StarCore 3900FP DSP Architectures uses the Eclipse IDE, whose user interface is substantially different from the "classic"
CodeWarrior IDE. For more details on these interface differences, see CodeWarrior
Development Studio Common Features Guide
available in the
<CWInstallDir>\SC\Help\PDF\ folder.
The following are some important tools of CodeWarrior Development Studio:
•
Eclipse IDE
•
C Compiler
•
Assembler
•
Linker
•
Debugger
•
CodeWarrior Profiling and Analysis tools
1.4.1 Eclipse IDE
The Eclipse Integrated Development Environment (IDE) is an open-source development environment that lets you develop and debug your software. It controls the project manager, the source code editor, the class browser, the compilers and linkers, and the debugger. The Eclipse workspace organizes all files related to your project. This allows you to see your project at a glance and navigate easily through the source code files.
The Eclipse IDE has an extensible architecture that uses plug-in compilers and linkers to target various operating systems and microprocessors. The IDE can be hosted on
Microsoft Windows, Linux, and other platforms. There are many development tools available for the IDE, including C, C++, and Java compilers for desktop and embedded processors
For more information about the Eclipse IDE, read the Eclipse documentation at: http://www.eclipse.org/documentation/
CodeWarrior Development Studio for StarCore 3900FP DSP Architectures Targeting Manual, Rev. 10.9.0,
11/2015
Freescale Semiconductor, Inc.
19
CodeWarrior Development Studio tools
1.4.2 C Compiler
The StarCore C Compiler:
• Conforms to the American National Standards Institute (ANSI) C standards.
• Conforms to version 1 of the StarCore Application Binary Interface ( ABI) standards.
• Supports a set of Digital Signal Processor ( DSP) extensions.
• Supports International Telecommunications Union (ITU)/European
Telecommunications Standards Institute ( ETSI) primitives for saturating arithmetic.
Additional parameters are available for non-saturating arithmetic and doubleprecision arithmetic.
• Allows standard C constructs for representing special addressing modes.
• Supports a wide range of runtime libraries and runtime environments.
• Optimizes for size, speed, or a combination of both, depending on options that you select.
The compiler can link all application modules before optimizing. By examining the entire linked application before optimizing, the compiler produces highly optimized code. The compiler performs many optimizations, such as:
• software pipelining
• instruction paralleling and scheduling
• data and address register allocation
• aggressive loop transformations, including automatic unrolling
For more information, see the StarCore C/C++ Compiler User Guide.
1.4.3 Assembler
The CodeWarrior StarCore assembler is a standalone assembler that translates assemblylanguage source code to machine-language object files or executable programs. Either you can provide the assembly-language source code to the assembler, or the assembler can take the assembly-language source code generated by the compiler.
For each assembly-language module in a build target, the StarCore assembler can generate a file that lists the generated code side-by-side with the assembly-language source code.
For more information, see the StarCore Assembler User Guide.
CodeWarrior Development Studio for StarCore 3900FP DSP Architectures Targeting Manual, Rev. 10.9.0,
11/2015
20 Freescale Semiconductor, Inc.
Chapter 1 Introduction
1.4.4 Linker
CodeWarrior Eclipse IDE for Power Architecture processors supports two types of linkers:
• CodeWarrior linker
• GCC linker
The StarCore Linker combines object files into a single executable file. You specify the link mappings of your program in a Linker Command File (LCF).
For more information, see the StarCore Linker (SC3000) User Guide.
1.4.5 Debugger
The CodeWarrior StarCore debugger controls the execution of your program and allows you to see what is happening internally as the program runs. You can use the debugger to find problems in your program.
The debugger can execute your program one statement at a time and suspend execution when control reaches a specified point. When the debugger stops a program, you can view the chain of function calls, examine and change the values of variables, and inspect the contents of registers.
The debugger allows you to debug your CodeWarrior project using either a simulator or target hardware.
The debugger communicates with the board through a monitor program (such as
CodeWarrior TRK) or through a hardware probe (such as CodeWarrior USB TAP).
1.4.6 CodeWarrior Profiling and Analysis tools
CodeWarrior Profiling and Analysis tools provide visibility into an application as it runs on the simulator and hardware. This visibility can help you understand how your application runs, as well as identify operational problems. The tools also provide user friendly data viewing features:
CodeWarrior Development Studio for StarCore 3900FP DSP Architectures Targeting Manual, Rev. 10.9.0,
11/2015
Freescale Semiconductor, Inc.
21