MicroController Pros Home Page My Account  Cart Contents  Checkout  
  Store » ColdFire C My Account  |  Cart Contents  |  Checkout   
Quick Find
Enter keywords to find the product you are looking for in the Quick Find field above

or use
Advanced Search
Accessory Boards->
ADI Blackfin
Atmel AVR->
Cypress PSoC
Microchip PIC->
Silicon Labs
ST Microelectronics->
Texas Instruments->
Embedded Ethernet->
Embedded Software->
I/O Modules->
Parts & Components->
Pick & Place Tools
Programmable Logic (PLD)
Prototype PCBs->
ROM/Flash Emulators
Test & Measurement->
Tutorial Software
Universal Programmers->
Intro to Embedded Tools
Embedded News Digest
Useful Resources
Shipping & Returns
Warranty & Liability
Privacy Notice
Conditions of Use
Contact Us
Motorola ColdFire ANSI C-Compiler and Assembler (Crossware) Motorola ColdFire ANSI C-Compiler and Assembler (Crossware)

Go to ColdFire Development Suite order page

The Crossware ColdFire ANSI standard C compiler generates code for the Motorola/Freescale ColdFire CF52xx, CF5307, CF5407, CF547x and CF548x families of microprocessors. It comes as part of the Crossware Embedded Development Studio and runs under Windows 9x, Windows NT 4.0, Windows 2000 and Windows XP.


  • Optimising ANSI C and C++ compiler with extensions for embedded development
  • Compiler flow analysis enables multiple optimizations
  • Additional calling conventions increase speed of compiled program
  • Function in-lining and parameters passed in registers
  • Source level debug output in IEEE695 format
  • Pre-written library routines including 32 bit and 64 bit floating point arithmetic
  • Comprehensive source-level debug output
  • Wide range of output file formats
  • Integrated Motorola compatible assembler
  • Highly user-friendly Embedded Development Studio integrated development environment (see separate data sheet)

Migrating from C to C++ with the Crossware suite is easy. Adding two instructions to the startup code is sufficient to handle the construction and destruction of global C++ objects. Also, C source files can be switched to the C++ language simply by giving them a .CPP extension.

The Crossware Code Creation Wizards are compatible with both C and C++. For example, if the Code Creation Wizards are used to insert code into a C++ source file, functions that must remain in C -- such as interrupt handlers -- are automatically qualified to keep them as C functions.

The package includes the following tools and utilities:

  • optimizing ANSI C and C++ compiler
  • C support libraries
  • relocatable macro cross assembler
  • relocating linker
  • make utility
  • library manager
  • Embedded Development Studio which includes
    • integrated project creation and maintenance utility
    • integrated editor
    • integrated terminal emulator
    • integrated C symbol browser
    • on-line books with full text search

    (The Embedded Development Studio and the relocatable macro cross assembler are described in detail in separate data sheets)

All of these tools and utilities are Win32 applications built to make the most of your 32 bit computing environment. All tools can be used outside of the Embedded Development Studio if required using conventional command-line instructions.



Language Definition
The compiler conforms to the ANSI C specification and provides a number of enhancements, including:

  • variables can be any length with all characters significant
  • the _interrupt keyword declares a C function as an interrupt routine
  • the _persist keyword declares that a variable will retain its contents (e.g., in battery backup RAM) during power down, and therefore should not be initialized
  • the C++ commenting convention "//" is supported
  • Variables can be defined anywhere within a block -- not just at the beginning
  • Variables can be defined within the initialising expression of a for loop
In addition, the compiler supports the C++ feature that allowsvariables to be defined within the conditional expressions of the forloop, while loop, if statement, and switch statement.

The support libraries are a subset of the ANSI standard libraries. The supported functions are listed below.

Data Sizes
The compiler uses the following sizes for the various C data types:

char and unsigned char : 1 byte
short int and unsigned short int : 2 bytes
int and unsigned int : 4 bytes
long and unsigned long : 4 bytes
float : 4 bytes (32 bits)
double : 8 bytes (64 bits)
long double : 8 bytes (64 bits)
enum : up to 4 bytes (minimum size
to accommodate members)
bit fields : up to 32 bits

In-Line Assembler
Assembler code can be embedded in your C source code using two methods.

The _asm keyword can be used to embed assembler into C functions.The #asm/#endasm directive allows assembler to be placed anywherewithin a C source file, not just within functions.

Strings inserted using the _asm keyword are scannedby the C preprocessor and so assembler statementscan be generated using C macros with full macrotoken replacement. Additionally, the compiler canreplace C variable names with the appropriate substringallowing easy access to global, static and localvariables and parameters.

On the other hand, assembler macros are bestdefined outside of functions and the #asm/#endasmdirective allows this.

Optimizations include:

  • constant folding
  • dead code elimination
  • strength reduction
  • algebraic simplification
  • jump/branch optimization
  • suppression of integral promotion
  • global register allocation 

Source Code Browsing
The compiler optionally generates information on all of the definitions ofand references to the identifiers used in your program. This includes functions,function parameters, local variables, global andstatic variables, enum identifiers, typedefs, gotolabels and the tag names of structures, unions andenums. The Embedded Development Studio willthen use this information to allow you to quickly navigatethrough your source code.

Code and data location
Compiler-generated code and data are automatically located in appropriate memory segments. Linker options allow these segments to be located at user-defined memory locations. String constants and objects declared as const are located in code space. Initialised and uninitialised data are located in separate segments, and initialisation of these segments is carried out automatically at run time.

Directives are also available allowing you to tell the compiler to placecode and data in your own named segments. This gives you furthercontrol on where code and data are placed and how data space is initialised.

The Diab Data section and use_section pragmas are also supported.

Code and data location
Comprehensive debug records are generated by the compiler andembedded in the object files for each module. These are used by thelinker to perform cross-module type checking and for output to the finalprogram file.


The linker combines object modules created with the compiler and/or the assembler to create the final code that will run on your target system. It carries out the following functions:

  • scans each module to collect segment and variable information
  • arranges and positions segments at appropriate memory locations to suit the memory organisation of the target system and any specific location information supplied by the user
  • finalises the values of all variables and calculates the results of any incomplete expressions
  • extracts and relocates the code from each module to produce the final target program

The target program can be produced in a number of different formats including Motorola S2 and S3 records, HP/Microtec IEEE695 format, or as a binary ROM image. (A utility is provided for users who wish to divide the binary ROM image into separate files suitable for 8 bit wide memory chips.)

An optional link map will show the final location and sizes of all segments and the values of all global variables.


The compiler and assembler can both optionally generate full source-level debug information. The linker updates these debug records to take account of the final location of the target program and outputs them to the target program file in IEEE695 format. Debuggers and in-circuit emulators that support this popular format can then use it to facilitate full source-level debugging.

We have tested our software with the latest Noral Micrologics debugging environment and can confirm compatibility with their systems.


Instead of being used to create a final target program, the object modules produced by the compiler and assembler can be integrated into a library. The library manager performs the tasks of:

  • combining object modules into a library
  • adding modules to an existing library
  • removing or extracting modules from an existing library
  • listing the contents of a library
The Library manager can be invoked automatically from the Embedded DevelopmentStudio to build a complete object code library.

An object code library can then be specifiedat link time when building your program. Thelinker will search the library and extract modulesfrom it as necessary to complete yourprogram.


The MAKE utility simplifies the task of keeping object files, libraries and target programs up to date. It detects if any source or dependency files have changed since the last build, and runs the appropriate tools (compiler, assembler, linker or library manager) to rebuild out-of-date files. It supports many advanced features including macros, inference rules, conditional inclusion and other preprocessing directives, and in-line files with automatic temporary file creation.

Although the Embedded Development Studio uses its own integrated routines to keep projects up to date, this stand-alone MAKE utility can be used to build projects from the command line or from within another application. The Embedded Development Studio automatically will create a makefile that is fully compatible with this stand-alone MAKE utility.

Support Library Routines:

abs( ) exit( ) gets( ) log10( ) sin( ) strncpy( )
acos( ) exp( ) getvect( ) log10l( ) sinl( ) strpbrk( )
acosl( ) expl( ) isalnum( ) malloc( ) sinh( ) strrchr( )
asin( ) fabs( ) isalpha( ) memchr( ) sinhl( ) strspn( )
asinl( ) fabsl( ) isascii( ) memcmp( ) sprintf( ) strstr( )
atan( ) _fcvt( ) iscntrl( ) memcpy( ) sqrt( ) tan( )
atanl( ) ferroe( ) isdigit( ) memmove( ) sqrtl( ) tanl( )
atoi( ) fgetc( ) isgraph( ) memset( ) srand( ) tanh( )
atol( ) fgets( ) islower( ) pow( ) sscanf( ) tanhl( )
atoff( ) fileno( ) isprint( ) powl( ) strcat( ) time( )
atolf( ) floor( ) ispuntc( ) printf( ) scanf( ) toascii( )
clearerr( ) floorl( ) isspace( ) putc( ) strchr( ) tolower( )
ceil( ) fprintf( ) isupper( ) putchar( ) strcmp( ) toupper( )
ceill( ) free( ) isxdigit( ) puts( ) strcpy( ) ungetc( )
cos( ) fscanf( ) labs( ) rand( ) strcspn( ) ungetch( )
cosl( ) getc( ) ldexp( ) sbrk( ) strlen( ) vfprintf( )
cosh( ) getchar( ) log( ) scanf( ) strncat( ) vprintf( )
coshl( ) getche( ) logl( ) setvect( ) strncmp( ) vsprintf( )


IBM compatible PC with an Intel Pentium-class CPU or above running Windows 9x, Windows NT 4.0, Windows 2000 or Windows XP.

Go to ColdFire Development Suite order page

Shopping Cart more
0 items
What's New? more
Flowcode 7 "Mechatronics Pack" Feature Pack
Flowcode 7 "Mechatronics Pack" Feature Pack
Specials more
AT91SAM9263 (ARM9) CPU Module V1.3, 64MB RAM, 262MB Flash
AT91SAM9263 (ARM9) CPU Module V1.3, 64MB RAM, 262MB Flash
01. LCD 4-mux, 7 digits x 14 segments, progress bar, arrows
02. LCD 4-mux, 7.1 digits x 7 segments, progress bar, arrows
03. PIC16F628A-I/P Microcontroller, 18 DIP, 20 MHz
04. Atmel ATtiny2313-20PU AVR Microcontroller, 20 DIP, 20 MHz
05. USB-to-Serial Cable: 3.3V TTL, Audio Plug Type, Reverse RX/TX
06. 2x5 (10-pin) 0.05" pitch IDC Connector Flat Ribbon Cable, 12cm
07. 2x10 (20-pin) 0.1" pitch IDC Connector Flat Ribbon Cable, 15cm
08. USB Universal In-Circuit Programmer PIC AVR ARM MSP 8051 EEPROM
09. ARM JTAG Debugger & Programmer, parallel port
10. Power Supply 3-12V DC, U.S. plug, 6 connection tips
Reviews more
Atmel AVR & AT89S52 Tutorial Kit
Boa noite, Porque não consigo baixar o Tutorial e Manual do ..
5 of 5 Stars!
  Monday 18 February, 2019   List of all our Products

Copyright © 2003-2017 MicroController Pros LLC
Powered by osCommerce