ARM Release Notes

This section documents ARM related changes for each released revision.

Changes in ARM Sourcery G++ Lite 4.1-23

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.

Changes in ARM Sourcery G++ Lite 4.1-21

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.

Changes in ARM Sourcery G++ Lite 4.1-19

ARMv4t linux multilib.  Linux configurations now support ARMv4t CPUs.

Linker scripts.  Several problems with the linker scripts for bare-metal targets have been fixed.

Changes in ARM Sourcery G++ Lite 4.1-18

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.

Changes in ARM Sourcery G++ Lite 4.1-16

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.

Changes in ARM Sourcery G++ Lite 4.1-15

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.

Changes in ARM Sourcery G++ Lite 4.1-13

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:

  • A bug that caused the stub not to correctly update the program counter and other register values was fixed. As a result of this fix, it is now possible to run programs residing in SRAM using the continue command from GDB.
  • The stub no longer prints status messages via GDB console output when invoked with the -q command-line option.
  • The stub's initialization sequence was updated to recognize revision C Cortex-M3 hardware.

Changes in ARM Sourcery G++ Lite 4.1-9

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.

Changes in ARM Sourcery G++ Lite 4.1-8

Stellaris USB Debug Stub Improvements.  Several bug fixes and enhancements were made to the USB Debug Stub. In particular:

  • Bugs in the implementation of open, read, and lseek were fixed.
  • Support was added for isatty, rename, unlink, and system.
  • Memory reads that span 4K block boundaries now work correctly.

Changes in ARM Sourcery G++ Lite 4.1-4

Runtime Libraries.  Support for ARMv7 including Cortex-M3 and pure Thumb-2.

Assembler.  Support for NEON and VFPv3, including unified NEON/VFP syntax.