The main changes are the improvements done in the templates code.

Binary files »

New features:

  • separate template configurations for standalone, retargetting or semihosting
  • a local _sbrk() was added, to match the definitions in the linker scripts; compared to the one included in newlib, this one:
    • enforces align(4) to avoid alignment problems
    • checks _Heap_Limit instead of SP (RTOS can allocate it below)
  • the libgloss/syscalls.c was included locally, to make the semihosting implementation details explicit and to allow the separate _sbrk().

Bugs fixed:

  • [bugs:#66, support-requests:#30] the sections.ld _end definition is now based on _end_noinit to make the templates compile in Release
  • [bugs:#63] updating the toolchain settings for multiple configurations at once is now possible
  • [bugs:#65] when using cortex-m4 and float hard or softfp, automatically select fpv4spd16, otherwise the build failed
  • [support-requests:#30] the pointers used in the init_array sections are void* to avoid warnings.

Other changes:

  • the librdimon linker options were added to the Hello World templates, to make it compile directly
  • when using startup files, the DEBUG version of ResetHandler is no longer naked, to allow breakpoints
  • since the __register_exitproc() provided by newlib seems buggy, add an empty __register_exitproc() in startup_cm.c to avoid startup crash when using startup files
  • the error processing in _write_trace_semihosting_stdout() is more elaborate.