Line 4... |
Line 4... |
# rom_harness.hex and ram_harness.hex.
|
# rom_harness.hex and ram_harness.hex.
|
#
|
#
|
# Parameter is test name without extension (e.g. to compile
|
# Parameter is test name without extension (e.g. to compile
|
# $S1_ROOT/tests/hello.c) just run "compile_test hello".
|
# $S1_ROOT/tests/hello.c) just run "compile_test hello".
|
#
|
#
|
# Note: requires sparc-linux-gnu-gcc from emdebian.org
|
# Note: requires sparc64-linux-gcc from emdebian.org
|
|
|
test_var S1_ROOT
|
test_var S1_ROOT
|
|
|
# Prepare the environment
|
# Prepare the environment
|
cd $S1_ROOT/tests
|
cd $S1_ROOT/tests
|
rm -f *.o *~ *.bin *.dump *.hex # Make clean
|
rm -f *.o *~ *.bin *.dump *.hex # Make clean
|
if ( test $# != 1 ) then
|
if [ $# -ne 1 ]; then
|
echo "compile_test - Script to compile a test for the S1 Core";
|
echo "compile_test - Script to compile a test for the S1 Core";
|
echo "(C) 2006 by Simply RISC";
|
echo "(C) 2006 by Simply RISC";
|
echo "Usage:";
|
echo "Usage:";
|
echo " compile_test ";
|
echo " compile_test ";
|
echo "where parameter is the test name without extension (e.g. 'hello').";
|
echo "where parameter is the test name without extension (e.g. 'hello').";
|
exit 1;
|
exit 1;
|
fi
|
fi
|
if ( ! test -e $1.c ) then
|
if ! [ -e $1.c ]; then
|
echo "ERROR: Test $1.c does not exist into the tests directory!";
|
echo "ERROR: Test $1.c does not exist into the tests directory!";
|
exit 1;
|
exit 1;
|
fi
|
fi
|
|
|
# Compile the dumper
|
# Compile the dumper
|
gcc -o $S1_ROOT/tools/bin/dump2hex.bin $S1_ROOT/tools/src/dump2hex.c
|
gcc -o $S1_ROOT/tools/bin/dump2hex.bin $S1_ROOT/tools/src/dump2hex.c
|
|
|
# Compile the boot code
|
# Compile the boot code
|
sparc-linux-gnu-as -xarch=v9b -ah -am -o boot/boot.bin boot/boot.s
|
sparc64-linux-as -xarch=v9b -ah -am -o boot/boot.bin boot/boot.s
|
sparc-linux-gnu-objdump -d -EB -w -z boot/boot.bin > boot/boot.dump
|
sparc64-linux-objdump -d -EB -w -z boot/boot.bin > boot/boot.dump
|
grep " " boot/boot.dump | egrep -v "file format" | dump2hex.bin > boot/rom_harness.hex
|
grep " " boot/boot.dump | egrep -v "file format" | dump2hex.bin > boot/rom_harness.hex
|
|
ln -s boot/boot.dump boot/rom_harness.dis
|
|
|
# Compile the C test
|
# Compile the C test
|
sparc-linux-gnu-gcc -c -O0 $1.c
|
sparc64-linux-gcc -c -O0 $1.c
|
sparc-linux-gnu-ld -Ur --script=$S1_ROOT/tools/src/linker.map -EB -o $1.bin $1.o
|
sparc64-linux-ld -Ur --script=$S1_ROOT/tools/src/linker.map -EB -o $1.bin $1.o
|
sparc-linux-gnu-objdump -d -EB -w -z $1.bin > $1.dump
|
sparc64-linux-objdump -d -EB -w -z $1.bin > $1.dump
|
grep " " $1.dump | egrep -v "file format" | dump2hex.bin > ram_harness.hex
|
grep " " $1.dump | egrep -v "file format" | dump2hex.bin > ram_harness.hex
|
|
ln -s $1.dump ram_harness.dis
|
|
|
#rm -f *.o *~ *.bin *.dump # Make clean
|
#rm -f *.o *~ *.bin *.dump # Make clean
|
|
echo "Test compiled!"
|
|
|