		   ColdFire 5249 Dhrystone 2.1 Code
Files included in this project:

./src/
crt0.hw.s	- Lowest level initialization file (assembly language)
dhry_1.c	- Main Dhrystone 2.1 source file
dhry_2.c	- Second Dhrystone 2.1 source file
dhry.h		- Dhrystone header file 
mcf5249.h       - Internal memory map structures, definitions, and macros
                  useful for accessing MBAR-offset addresses
init.h         	- Function prototypes and memory map information
printf.c       	- A simplified version of the standard C library routine
                  printf()


./
dhry.hw.lnk	- Diab Data linker file
make.5249       - Makefile for compiling and linking this project
pseudo.rts	- Perl script file to implement pseudo rts optimization

./obj
This directory is created by the makefiles and contains all the object,
map and executable outputs from the compilation and linking processes.

crt0.hw.o	- crt0.hw object file
dhry.elf	- dhrystone executable elf
dhry.hw.map	- map file
dhry.s19	- dhrystone executable s19
dhry_1.o	- dhry_1 object file
dhry_1.s	- dhry_1 assembly file
dhry_2.o	- dhry_2 object file
dhry_2.s	- dhry_2 assembly file
printf.o	- printf object file
printf.s	- printf assembly file


What does this code do?

The code provided here runs the dhrystone 2.1 benchmark on the M5249C3 evaluation board. The code assumes that the external memory, UART, and other modules have been initialized by the dBUG ROM monitor.

In order to obtain the optimal performance the internal SRAM0 is used for stack space. The code is stored in internal SRAM1. The compiler options and operand mapping used also have an impact on the performance. Please refer to the make.5249 and dhry.hw.lnk files to see the compiler options and operand mapping used for this project.

How do I run the code on the board?

1. The dhry.s19 file can be loaded onto the board using the dBUG 'dl' or 'dn' command. See the ColdFire M5249C3 user's manual for more details on how to use the 'dl' and 'dn' commands.

2. After the code is loaded. Type 'go 20010000' at the dBUG prompt to start execution of the code.

3. The dhrystone information including the Dhrystone 2.1 VAX MIPS number will be displayed to the terminal. When the code completes the board will resume regular dBUG operation.

Results

What performance should I get when running this code?

When run on the ColdFire M5249C3 eval board running at 90MHz the code should yield 118 Dhrystone 2.1 Vax MIPS. This number can be scaled up to 140MHz (the max operating frequency of the 5249) to reach the published MIPS number of 125 .

125 = 118 (140/132)

What are Dhrystone 2.1 Vax MIPS?

Dhrystone is a benchmark program that tests the integer performance of a processor. Dhrystone 2.1 Vax MIPS relate the performance of a processor running the Dhrystone 2.1 benchmark to the performance of a Vax 11/780 processor. To calculate Vax MIPS the number of dhrystones performed in one second are scaled by the dhystone per second performance of the Vax 11/780 (1540 dhrystones/sec). The Dhrystone 2.1 Vax MIPS tells you how many times faster than a Vax 11/780 a processor can perform the Dhrystone 2.1 benchmark.