The Embedded Experts

Release notes for embOS V5.18.0.1 for ARM7/9/Cortex-A/R and IAR compiler V8.x and V9.x

Tool chain used for build

Compiler: IAR ANSI C/C++ Compiler V8.22.2.15995/W32 for ARM
Assembler: IAR Assembler V8.22.2.15995/W32 for ARM
Linker: IAR ELF Linker V8.22.2.15995/W32 for ARM
Librarian: IAR Archive Tool V10.2.6.201
Workbench: IAR Embedded Workbench for ARM 8.22.2.15996

Version 5.18.0.1 [07. Mar 2023]

Improvements

  1. Modified ARMv5 specific source file OS_ARMv5_MMU.c for usage with IAR Embedded Workbench for ARM V9.30.1 and later.

Version 5.18.0.0 [11. Nov 2022]

New Features

  1. Update to latest embOS generic sources V5.18.0.
  2. Added new macros OS_ARM_MMU_SHAREABLE and OS_ARM_MPU_SHAREABLE for ARMv7-A/R devices to mark normal memory as shareable.
  3. Board support packages added for:
    SEGGER emPower Zynq

Improvements

  1. Merged thread safety files xmtx.c, xmtx2.c and xmtx3.c into a single file called OS_ThreadSafe.c

Version 5.16.1.1 [07. Jul 2022]

New Features

  1. VFP/NEON register handling is now automatically performed by embOS. embOS API functions OS_VFPD16_SetTaskContextExtension(), OS_VFPD32_SetTaskContextExtension(), OS_VFPD16_Save(), OS_VFPD16_Restore(), OS_VFPD32_Save() and OS_VFPD32_Restore() are deprecated. Compatibility with older embOS versions is ensured through macro definitions.
  2. New embOS libraries for devices using VFP/NEON added.
  3. Update to IAR Embedded Workbench for ARM V8.22.2.

Program corrections

  1. TMS570LS12x BSPs corrected.
    _OS_GetHWTimerCycles() in RTOSInit_TMS570LS12x.c returned wrong values.

Version 5.16.1.0 [04. Feb 2022]

New Features

  1. Update to latest embOS generic sources V5.16.1.
  2. Board support packages added for:
    TI Hercules RM46x Development Kit

Improvements

  1. Interrupt latency during cache clean range operations on Cortex-A9 L2 cache reduced.

Version 5.14.0.0 [22. Jun 2021]

New Features

  1. Update to latest embOS generic sources V5.14.0.

Version 5.8.2.1 [17. Apr 2020]

New Features

  1. Dedicated embOS libraries for Cortex-R5 devices added.
  2. Board support packages added for:
    Renesas R9A06G032 (Custom hardware)
    Xilinx XCZU2EG (Enclustra Mercury XU5)

Version 5.8.2.0 [05. Mar 2020]

New Features

  1. Update to latest embOS generic sources V5.8.2.

Improvements

  1. Memory access permissions and execute-never flag can now be set with OS_ARM_MMU_AddTTEntries().

Program corrections

  1. The L2 cache routines were internally called with virtual memory addresses instead of physical memory addresses by mistake.
    The problem existed since the L2 cache support was added and is fixed with version 5.8.2.0.

Version 5.06 [10. Oct 2019]

New Features

  1. Update to latest embOS generic sources V5.06.
  2. Board support package for the NXP i.MX6 phyCORE added.

Version 5.02 [10. Jul 2018]

New Features

  1. Update to latest embOS generic sources V5.02.

Version 4.40 [01. Feb 2018]

New Features

  1. Update to latest embOS generic sources V4.40.

Version 4.38 [13. Oct 2017]

New Features

  1. Update to latest embOS generic sources V4.38.

Version 4.36 [02. Aug 2017]

New Features

  1. Update to latest embOS generic sources V4.36.
  2. New API function OS_ARM_DCACHE_Clean() added.

Version 4.34.1 [18. Apr 2017]

New Features

  1. Update to IAR Embedded Workbench for ARM V8.11.

Version 4.34 [30. Mar 2017]

New Features

  1. Update to latest embOS generic sources V4.34.
  2. Update to IAR Embedded Workbench for ARM V8.10.
  3. Board support package for the Microchip (Atmel) ATSAMA5D2 added.

Version 4.16 [11. Apr 2016]

New Features

  1. Update to latest embOS generic sources V4.16.
  2. Board support package for the Xilinx XC7Z010 added.

Version 4.14 [07. Dec 2015]

New Features

  1. Update to latest embOS generic sources V4.14.
  2. Board support package for the NXP (Freescale) iMX6UL added.

Version 4.12b [29. Sep 2015]

New Features

  1. Update to latest embOS generic sources V4.12b.
  2. Additional libraries for ARMv7-A architectures added.
  3. Board support package for the Atmel ATSAMA5D44 added.
  4. Board support package for the Freescale VF61NS15 added.
  5. Board support package for the Renesas R7S72100 (RSK RZ/A1H) added.
  6. Board support package for the TI AM3359 (BeagleBone) added.
  7. Board support package for the TI AM3359 (BeagleBone Black) added.
  8. Board support package for the TI TMS470 added.

Version 3.90 [06. Mar 2014]

New Features

  1. Update to latest embOS generic sources V3.90.
  2. Board support package for the Atmel ATSAMA5D33 added.
  3. Board support package for the Atmel ATSAMA5D35 added.
  4. Board support package for the TI AM3359 (TMDSSK3358) added.

Version 3.88a1 [14. Feb 2014]

New Features

  1. Board support package for the Renesas R7S72100 (GENMAI CPU board) added.

Version 3.88a [06. May 2013]

New Features

  1. Update to latest embOS generic sources V3.88a.

Program corrections

  1. PLL initialization for NXP LPC2478 corrected.
    Previous versions of the PLL initialization code for the NXP LPC2478 devices used an even value for the CPU clock divider.
    This was against the specification which requires odd values for the divider.
    The problem existed in all previous versions of embOS for ARM and is fixed with version 3.88a.
  2. Manual corrected, chapter about thread safe system libraries.
    The description for thread safe system libraries for EW_ARM 6.4 or later was worong in previous manuals.
    One additional linker directive is required to activate and include code for thread safe system libraries.

Version 3.86n [10. Dec 2012]

New Features

  1. Update to latest embOS generic sources V3.86n.
  2. Thread safe system library support with compiler 6.4 or newer described.
    Activation of thread safe system library support with IAR compiler 6.4 or newer requires additional linker options which are now described in the compiler and CPU specific manual.

Program corrections

  1. Thread safe system locking functions modified.
    A problem was reported which occurred when the application was ended without starting embOS.
    When thread safe system locks were initialized during main(), the destroy function of the system locks might have crashed when the application run to exit without starting embOS before.
    The modified destroy function of the embOS syslocks now is not called when embOS was not started before, because there is nor need to destroy the syslocks in this case.

Version 3.86l [26. Nov 2012]

New Features

  1. Update to latest embOS generic sources V3.86l.

Version 3.86g [06. Aug 2012]

New Features

  1. Update to latest embOS generic sources V3.86g.

Version 3.86f [01. Aug 2012]

New Features

  1. Update to latest embOS generic sources V3.86f.

Version 3.84d [30. Apr 2012]

New Features

  1. Update to latest embOS generic sources V3.84d.

Version 3.84c [10. Jan 2012]

New Features

  1. Update to latest embOS generic sources V3.84c.

Version 3.84a [16. Dec 2011]

New Features

  1. Update to latest embOS generic sources V3.84a.
  2. Support for Cortex-A8 added.
  3. Board support package for the TI AM3517 (TMDSEVM3517C) added.

Version 3.84 [04. Nov 2011]

New Features

  1. Update to latest embOS generic sources V3.84.
  2. New functions for TLS and VFP support
    OS_ExtendTaskContext_VFP() added to extend a task context to save and restore VFP registers.
    OS_ExtendTaskContext_TLS_VFP() added to extend a task context to use TLS together with VFP registers.

Version 3.82t [03. May 2011]

New Features

  1. Update to latest embOS generic sources V3.82t.

Program corrections

  1. CSpy plugin corrected.
    Previous versions of the CSpy plugin did not show the task sensitve call stack correctly when used with EWARM V6.
    The new CSpy plugin V6.0.6.4 now shows a task sensitive call stack for suspended and preempted tasks.
  2. Project settings and macros corrected.
    Previous versions of embOS for EWARM V6 contained macro files with incompatible function calls which did not run on CSpy for EWARM V6.
    All macro files are corrected and are now compatible to the modified macro language of CSpy for EWARM V6.

Version 3.82r [27. Jan 2011]

New Features

  1. Update to latest embOS generic sources V3.82a.

Improvements

  1. Thread local storage handling optimized
    Since version 3.82r of embOS, usage of thread local storage does not affect the context switch of tasks which do not use thread local storage.
    A task may be terminated when it uses thread local storage. The previous implementation did not allow termination of tasks with thread local storage.

Program corrections

  1. Thread local storage handling corrected
    Terminating a task which used thread local storage resulted in exiting the program.
    OS_Terminate() now can also be used for tasks with thread local storage. The problem existed since version 3.82m when the IAR compiler 6.10.1 or higher was used and is fixed with version 3.82r.

Version 3.82m [24. Nov 2010]

New Features

  1. Update to latest embOS generic sources V3.82m.

Program corrections

  1. Queue management corrected.
    Queue management failed when the Q-buffer was filled up to the end. This might have happened, when messages are produced faster then they were consumed.
    The OS_Q_Purge() and OS_Q_Put() functions did not handle this case correctly and caused the queue to be corrupted.
    OS_Error() might have been called with error number 143, or OS_Q_GetPtr() might have returned with a wrong message size or a message zize of 0.
    The problem existed since version 3.82k of embOS and is fixed with version 3.82m.

Version 3.82l [25. Oct 2010]

New Features

  1. Update to latest embOS generic sources V3.82l.
  2. Thread local storage supported
    embOS for ARM cores and IAR compiler now supports thread local storage which can be individually activated for every task.

Version 3.82k1 [21. Oct 2010]

New Features

  1. Update to IAR workbench / compiler V6

Version 3.82k [01. Oct 2010]

New Features

  1. Update to latest embOS generic sources V3.82k.

Program corrections

  1. BSP for Atmel AT91SAM9263 corrected.
    The SDRAM initialization initialized a 16bi data BUS for SDRAM, wasting half of the assembled SDRAM of the ATMEL eval board. The problem existed in all previous embOS versions and is fixed with version 3.82k.
  2. BSP for Atmel AT91SAM9G45 corrected.
    The linker fie delivered with embOS defined a total amount of 64MB SDRAM only, wasting half of the assembled 128MB SDRAM of the ATMEL eval board. The problem existed in all previous embOS versions and is fixed with version 3.82k.

Version 3.82e1 [22. Mar 2010]

New Features

  1. Start projects with internal Flash now use SEGGER J-Link FlashDL feature.
    embOS start projects for microcontrollers with integrated Flash now use free SEGGER J-Link FlashDL feature to program the Flash the fastest and easiest possible way using J-Link.

Version 3.82e [28. Jan 2010]

New Features

  1. Update to latest embOS generic sources V3.82e.
  2. Board support package for the Atmel AT91SAM9G20 added.
  3. Board support package for the Atmel AT91SAM9M10 added.

Version 3.82b [27. Oct 2009]

New Features

  1. Update to latest embOS generic sources V3.82b.
  2. Update to compiler/workbench version 5.40D
    The new workbench comes with a new librarian which reuires modified batch files to build the embOS libraries from sources.
    Some sample projects required new settings for the modified flash loaders which come with the new workbench version.
    The new start projects are suffixed _V540.eww. Start projects for older versions of the workbench are still delivered with embOS.

Program corrections

  1. BSP for ATMEL AT91SAM9260 optimized
    The sample start project for AT91SAM9260 now initializes the MMU and caches to speed up the CPU.
  2. UART initialization for LPC2148, LPC2378 and LPC2468 corrected.
    The UART initialization for embOSView in RTOSInit might have enabled the auto-baud feature and interrupt for the UARTs of those devices.
    The problemm occurred, because interrupt enable and identificatio registers were accessed as 8bit register during initialization.
    The corrected version now accesses the registers as 32bit register and fix the problem.
    The problem existed in all previous versions of embOS for ARM and is fixed with version 3.82b.

Version 3.82a [05. Oct 2009]

New Features

  1. Update to latest embOS generic sources V3.82a.

Version 3.82 [21. Sept 2009]

New Features

  1. Update to latest embOS generic sources V3.82.

Version 3.80g1 [29. Jun 2009]

Improvements

  1. Code modified to avoid warnings
    Some compile time switches were not predefined in some projects and therefore produced a warning when remarks were enabled.
    This did not cause any problem, but might have been confusing.

Version 3.80g [05. Jun 2009]

New Features

  1. Update to latest embOS generic sources V3.80g.
  2. ATMEL SAM7S/SAM7X/SAM7SE projects automatically detect 512KB Flash
    SAM7 CPUs with more than 256KB Flash come with 2 flash controllers which have to be initialized both to guarantee stabel operation when running the code from Flash.
    The start-projects and initilization code for SAM7 CPUs now automatically detect the Flash size and initialize the second flash controller if it is present.

Version 3.62a1 [09. Oct 2008]

New Features

  1. embOSView can be used with J-Link
    embOS for ARM now comes with a new version of embOSView which allows profiling, task, stack and system analyzis during runtime using J-Link.
    All embOS start projects are modified to use the DCC channel and JTAG as default communication channel for embOSView.
    By modification of the OS_USE_DCC definition, a UART as it was used in previous versions, can be selected for communication.
    To use embOSView with JLink, the JLINKARM.dll which comes with embOSView has to be located in the same directory as the embOSView executable.
    embOSView has to be set up to use DCC instead of a COM-port.
  2. Board support package for the Atmel AT91SAM9XE added.

Version 3.62a [07. Oct 2008]

New Features

  1. Update to latest embOS generic sources V3.62a.

Improvements

  1. Automatic stack address alignment
    The stackpointer for task stacks is now automatically aligned to an 8 byte boundary, regardless the definition of the task stack area and stack size.

Version 3.62 [01. Sep 2008]

New Features

  1. Update to latest embOS generic sources V3.62.
  2. The embOS plugin for C-Spy now shows the call stack and context of suspended tasks.
    The new embOS plugin V3.60e for IAR C-Spy now shows the state and call stack of all tasks. Every task in the task list, even suspended or interrupted tasks, can be analyzed during a debug session.

Improvements

  1. Resource semaphores and mailboxes shown in embOS plugin
    Resource semaphores and mailboxes were not shown by the current embOS plugin for the IAR embedded workbench for ARM.
    The relevant data structures are not found in the output files.
    embOS version 3.62 for ARM and IAR compiler comes with a workaround which makes resource semaphores and mailboxes visible.
    Two dummy variables are declared in OS_Error.c. These variables are optimized away, but the relevant data structures are linked in the output file.

Version 3.60e

New Features

  1. Update to latest embOS generic sources V3.60e.

Improvements

  1. OS_ARM720_CACHE module optimized
    The function OS_ARM720_CACHE_Enable() now also enables the write buffer, thus increasing memory performance for ARM720 targets when cache is used.
  2. BSP for NXP LH79524 optimized
    Linker settings and MMU setup modified to increase performance. The data section of the start project was located in an uncached area.

Version 3.60d1 [08. Aug 2008]

New Features

  1. Board support package for the Atmel AT91M55800 added.
  2. Board support package for the Atmel AT91R40008 added.
  3. Board support package for the Atmel AT91RM9200 added.
  4. Board support package for the Atmel AT91SAM9263 added.
  5. Board support package for the Atmel AT91SAM9RL64 added.
  6. Board support package for the NXP LH7A400 added.
  7. Board support package for the NXP LH7A404 added.
  8. Board support package for the NXP LH79524 added.
  9. Board support package for the NXP LPC2148 added.
  10. Board support package for the NXP LPC2468 added.
  11. Board support package for the OKI ML67Q4051 added.
  12. Board support package for the OKI ML69Q6203 added.

Version 3.60d [09. Jun 2008]

New Features

  1. Update to latest embOS generic sources V3.60d.
  2. Board support package for the Toshiba TMPA910 added.

Version 3.60a1 [14. Mar 2008]

New Features

  1. MMU and cache handling functions added
    embOS for ARM now comes with functions to initialize the MMU and cache of ARM9 and ARM720 CPUs.
    Functions to invalidate and clean the cache are provided also.

Version 3.60a

New Features

  1. Update to latest embOS generic sources V3.60a.

Program corrections

  1. MMU initialization for ARM 926 corrected.
    The MMU enable function called from __low_level_init() performed a cache flush which might have caused writing invalid data onto the stack which then caused a system crash.
    The problem existed in all previous versions of embOS for ARM and is fixed with version 3.60a.

Version 3.52e [27. Nov 2007]

New Features

  1. Update to latest embOS generic sources V3.52e.

Improvements

  1. BSP for ATMEL AT91SAM9260 optimized
    The sample start project for AT91SAM9260 now initializes the MMU and caches to speed up the CPU.

Version 3.52d [31. Oct 2007]

New Features

  1. Update to latest embOS generic sources V3.52d.

Program corrections

  1. Task switch corrected in ARM core 5 libraries
    The task switch for ARM mode libraries and core type 5 did not work, the system crashed.
    All libraries named os5tpa* were affected.
    The libraries for thumb mode and all core type 4 worked as expected.
    The problem existed in version 3.52a of embOS for ARM and IAR only and is fixed with version 3.52d.

Version 3.52a [03. Sep 2007]

New Features

  1. Initial version for IAR compiler V5.1x