Datasheet

Differences
ARM DUI 0064D Copyright © 1999-2001 ARM Limited. All rights reserved. 2-45
Floating-point exceptions
The ADS tools have been changed to conform to the IEEE specification. The
SDT2.50/2.51 tools set the default response to floating-point Invalid-Operation,
Divide-By-Zero and Overflow to be a trap causing program termination. This is
contrary to IEEE 754 section 7, that states that “The default response to an exception
shall be to proceed without a trap.”
Impact
To restore exception handling to the SDT 2.50/2.51 default, make the call shown in
Example 2-1 before using any floating-point operations. The call should preferably be
at the beginning of
main()
.
Example 2-1
#include <fenv.h>
#define EXCEPTIONS (FE_IEEE_MASK_INVALID | FE_IEEE_MASK_DIVBYZERO | \
FE_IEEE_MASK_OVERFLOW)
__ieee_status(EXCEPTIONS, EXCEPTIONS);
Stack unwinding
The compilers now always generate DWARF2 stack-unwinding descriptions. In SDT
2.50/2.51 they were only generated if the
-g
option was specified (for debug
information). The assembler generates stack-unwinding descriptions if the new frame
directives are used. The debuggers rely on the stack-unwinding descriptions for stack
backtrace.
Impact
If you want to unwind stacks when debugging assembler code, ensure that you use the
new frame directives. Stack-unwinding descriptions are automatically generated by the
ADS compilers and are included in the libraries released with ADS, so you have to
change only assembly language code and legacy SDT2.50/2.51 code not compiled with
debug information (
-g
option). You can examine disassembled output from the
compilers to see how to use the assembler frame directives correctly.
Source directory variable in armsd and ADW
The
$sourcedir
variable used by armsd and ADW defaults to NULL if no value is
specified. In addition, the delimiter used to separate multiple pathnames has been
changed from a space to a semicolon.