6 - Alpha release of toolchain including GDB.
11 - eCos hello world/RedBoot?
14 - Install software & compile VHDL & Simulate
15 - Upload a selection of binaries
20 - Add -msim -mzeta options so correct linker files are chosen
21 - Add movdi/df. Requires careful integration w/regStack. R0:DF
22 means that the value is stored in two consequtive registers.
23 - Can --relax be made default? See CRIS target
24 - Can -fomit-frame-pointer be made default w/-O1/O2/Os/O3?
29 - Remove register allocation? Check how effective dead stack slot
30 elimination actually is.
31 - more efficient cleanup of regStack
33 - retire BRANCH(merge intocompare instructions)
35 - Make CALL PC relative
36 - Add non-relaxable 13 bit absolute relocation, useful for microcode.
41 - Get Mingw32 toolchain up and running. Fixed in GCC 4.0? See PR 14316
45 - add newlib testsuite
46 - add libgloss testsuite
52 1. Start the simulator
54 2. Run tests. E.g. to run only the execute tests...
56 make check-gcc RUNTESTFLAGS="execute.exp --target_board=zpu-remote --all"
62 make check-gcc RUNTESTFLAGS="compile.exp=20000804-1.c --target_board=zpu-remote --all"
68 Compiling toolchain under Linux
69 ===============================
71 1. check out ecosboard/toolchain in Eclipse
72 2. chmod +x on all the executables that was checked out. Fortunally
73 a script exists for this purpose. This is a bug that has been fixed
76 cd ecosboard/toolchain
81 Compiling eCos appliaction
82 ==========================
83 1. Place eCos + zpu-elf-* in environment
85 export PATH=$PATH:`pwd`/install/bin:`pwd`/ecos-install/gnutools/arm-elf/bin:`pwd`/ecos-install/ecos-2.0/tools/bin
86 export ECOS_REPOSITORY=`pwd`/ecosboard/zpu/ecos/packages
92 ecosconfig new zeta default
96 3. Link hello world app with eCos linker library
98 zpu-elf-gcc -Iinstall/include hello.c -Linstall/lib -Ttarget.ld -nostdlib -o hello.elf -Wall
102 A bit of ad-hoc regression testing until we have our nightly build up will be fine.
105 Potential optimisations
106 =======================
107 - add support for loadsp/storesp
108 - add support for loadpc
109 - fix calling convention
110 - which operators should we add support for? Today e.g. xorsi3 is handled via
115 - Create symbolic links into binutils inside ecosboard\zpu\toolchain\gdb
119 lndir ../../binutils/bfd
123 lndir ../../binutils/include
127 lndir ../../binutils/opcodes
131 lndir ../../binutils/libiberty
135 ../ecosboard/zpu/toolchain/gdb/configure --target=zpu-elf --prefix=`pwd`/../install
139 Powerful debugging tips
140 =======================
142 - The zpu-elf-gcc compiler will sometimes crash while compiling
143 programs when entries are missing/malformed in the .md file.
144 - Grep the source code(e.g. using Eclipse).
145 - Use the debugger. From the gccbuild directory:
148 $ insight --args ./cc1 ../../gcctest/prehello.c -dg && cat ../../gcctest/prehello.s
150 - Dump RTL for each pass, e.g. '-dg' dumps RTL after register allocation.
151 - GCC will cause a segmentation fault when running, at which point the stack trace might
152 be lost. Try setting an earlier breakpoint using e.g break emit_*. Remember that
153 Insight console has name completion using <TAB>. An example is where I had
154 defined beq, but not bne and the compiler crashed when trying to jump to bne code
159 It is highly recommended to have the build directory be outside the Eclipse
160 project where the toolchain is hosted. This makes CVS synchronization much
167 $ ../ecosboard/zpu/toolchain/binutils/configure --target=zpu-elf --prefix=`pwd`/../install
175 $ export PATH=$PATH:`pwd`/../install/bin
178 $ ../ecosboard/zpu/toolchain/gcc/configure --target=zpu-elf --prefix=`pwd`/../install --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --disable-shared --enable-newlib -v --enable-checking=misc,tree,rtl,rtlflag,gc,gcac,fold --disable-multilib --disable-threads --enable-sjlj-exceptions --enable-libstdcxx-allocator=malloc