This file has been saved by an unregistered copy of ben's HTML saver. This rather annoying message does not appear in the registered version. Please register now - read the documentation or email ben@cconcepts.co.uk to find out how!

Development Tools

� The Current Situation

� What to Do

� Dave's Wishlist

� Debugging

� A Unified Build Environment

� Where we go from Here

The Current Situation C compiler: Norcroft 5.06

Upsides:

� Understands APCS

� Produces reasonably small, efficient object code

� Understands unique Acorn formats (relocatable modules, etc)

� Comprehensive library set

Downsides:

� Norcroft 5.06 is 4 years old

� It cannot compile some modern code (eg Netscape's HTML

parser)

� There are commonly-encountered bugs (particularly when

optimising)

The Current Situation

C++ compiler: Port of AT&T CFront front-ending onto Norcroft C compiler

Upsides:

� Allows C++ to be written at all (although not incorporated into

relocatable modules without heinous munging)

� Well documented by AT&T

Downsides:

� Produces inefficient object code

� Cannot compile a large cross-section of modern code

� No formal class libraries available (but see later...)

� Pre-dates ANSI

� Very difficult to write relocatable modules

The Current Situation

ObjAsm: Macro assembler

Upsides:

� Produces efficient code

� Understands APCS

� Handles unique Acorn formats

Downsides:

� Needs tweaking to understand StrongARM as a target (eg use long

multiply without having to target ARM7M)

The Current Situation

Debugger: DDT

Upsides:

� Enables some bugs to be found

Downsides:

� Can't use on relocatable modules, interrupt-sensitive things, etc etc

� Difficult to use

� Can send the system unstable

� Can introduce Heisenbugs of its own

What to Do

Options available:

� Get a better Norcroft (C, C++ and FPLib) from ARM

(problem here is cost, but you get the fastest and most efficient

object code...)

� Get a development tool set ported from elsewhere

(problems here are cost and knowledge of architecture, but you

may get some very nice frontend stuff...)

� GNU

(problems here only involve work, we get C, C++, F77, Ada,

Pascal etc etc etc compilers, ... also the compilers don't produce

object that's quite as efficient...)

Dave's Wishlist

� gcc-arm 2.8.x or egcs equivalent, hacked to be able to understand RMs

� g++-arm, ditto

� Enhanced Toolbox libs

� Standard template, ANSI and Toolbox class libs

� Macro assembler (can be tweaked ObjAsm, can be tweaked gas...)

� Symbolic debugger (see later)

� Source Management system (RCS, CVS...)

� Language-independent Make environment

� Resfile editor and tester (!ResEd, !ResTest)

� Old-style Template editor (eg !TemplEd)

� AOF disassembler (!DecAOF)

� Source code editor with throwback (eg !Zap, !StrongED)

� Source code profiler

� Searchable docs for all the above!

Debugging <!-- (Unregistered version) --> </body> </html>