This section documents ARM related changes for each released revision.
Stellaris USB Debug Sprite Improvements. The former USB Debug Stub, armswd, is now known as the USB Debug Sprite, and has been renamed to arm-stellaris-eabi-sprite. In addition, its initialization sequence has been updated to recognize the r1p1 release of the Cortex-M3 processor.
Incompatible Changes to Stellaris Linker Scripts.
ARM Sourcery G++ Lite now supports linking executables to run from RAM as well
as ROM. As part of this change, there are now separate RAM and ROM
versions of the linker scripts for each supported board, and the former
ROM-based versions have been renamed. For example, if you were
formerly linking with -T lm3s10x.ld
, you should now use
-T lm3s10x-rom.ld
to get the same behavior.
Eclipse Debuggers. Eclipse configurations for debugging arm-none-eabi applications using the GDB simulator and remote debug stubs have been added.
iWMMXt2 Support. The assembler and disassembler now support iWMMXt2 instructions.
NEON Intrinsics Support.
GCC now supports NEON intrinsics defined in the
arm_neon.h
header.
These are the same intrinsics supported by the ARM RVCT
compiler and are documented in the 'ARM NEON Intrinsics'
section of the GCC manual.
ARMv4t linux multilib. Linux configurations now support ARMv4t CPUs.
Linker scripts. Several problems with the linker scripts for bare-metal targets have been fixed.
NEON Compiler Support. Initial GCC support for autovectorization and generation of NEON SIMD instructions has been added.
Bare Metal Cortex-M3 Configurations. Bare metal configurations now support generating images for use on ARMv7M devices (eg. Cortex-M3).
iWMMXt support in GLIBC.
GLIBC's setjmp
and
longjmp
now support saving and restoring
iWMMXt registers on hardware with those registers. This
requires a kernel reporting
iwmmxt
in the
Features
entry in
/proc/cpuinfo
.
iWMMXt exception handling support. Exception handling now restores the values of iWMMXt registers correctly.
Corrected IPC functions.
A bug in GLIBC's msgctl
,
semctl
, and shmctl
functions has been corrected.
Stack permission marking for ARM GNU/Linux. Non-executable stacks can provide increased security against some forms of "buffer overflow" attacks. The tools involved must coordinate the annotation of required stack permissions, either executable, or non-executable. For ARM GNU/Linux targets the compiler now outputs annotations indicating the required stack permissions.
Stabs Debugging Information Support.
Using the Stabs debugging format (available with -gstabs
or
-gstabs+
) now works in conjunction with -mthumb
.
CodeSourcery recommends the default DWARF debugging format (available with -g)
as DWARF is a more comprehensive debugging format.
Stellaris Linker Scripts in IDE. Linker scripts may now be selected via a drop-down menu in Eclipse.
Stellaris Linker Scripts for 3xx Series CPUs. The linker scripts for 3xx Series CPUs now place the ISR vector at address zero, as required by all Cortex-M3 cores.
Stellaris USB Debug Stub Improvements. Bug fixes and new features include:
continue
command from GDB.
-q
command-line option.
Stellaris USB Debug Stub Improvements. Program images exceeding 4K can now be uploaded to flash memory.
Additional Stellaris Boards Supported. The Stellaris 301, 310, 315, and 316 CPUs are now supported. Linker scripts have been added for these boards.
Stellaris USB Debug Stub Improvements. Several bug fixes and enhancements were made to the USB Debug Stub. In particular:
open
,
read
, and lseek
were
fixed.
isatty
,
rename
, unlink
, and
system
.