The Embedded Experts

Release notes for embOS V5.8.2.0 for NIOS2 and GNU

Tool chain used for build

Compiler: nios2-elf-gcc (Altera 13.1 Build 162) 4.7.3
Assembler: GNU assembler (GNU Binutils) 2.23.52.20130219
Linker: GNU ld (GNU Binutils) 2.23.52.20130219
Librarian: GNU ar (GNU Binutils) 2.23.52.20130219
Workbench: NIOS II 13.1 Software Build Tools for Eclipse

Version 5.8.2.0 [24. Jan 2020]

New Features

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

Version 4.12a [17. Sep 2015]

New Features

  1. New embOS sources V4.12a
    embOS comes with new features which are described in the generic manual and release notes.

Improvements

  1. Improved compatibility with the NIOS II Software Build Tools V13.1.
    embOS for NIOS II may be used with the NIOSII Software Build Tools V13.1, V14.0, V14.1 and V15.0.

Version 4.04a [12. Feb 2015]

New Features

  1. Update to the NIOS II Software Build Tools 14.0.
    With version 14.0 of the NIOS II software, new Software Build Tools are delivered as part of the Quartus II Software
  2. New embOS sources V4.04a
    embOS comes with new features which are described in the generic manual and release notes./li>

Improvements

  1. Improved usage of the global pointer register for small global data structures.

Version 3.88g [30. Oct 2013]

New Features

  1. New embOS sources V3.88g.
    embOS comes with new features which are described in the generic manual and release notes.

Version 3.86d [14. May 2012]

New Features

  1. New embOS sources V3.86d.
    embOS comes with new features which are described in the generic manual and release notes.

Program corrections

  1. Delayed OS_EnterRegion() problem fixed.
    When embOS was compiled with highest optimization using a GNU compiler 4.6 or later, the execution of the OS_EnterRegion() function was delayed in some embOS API functions. This might have caused problems when an affected functon was interrupted before OS_EnterRegion() was executed completely. With embOS version 3.86d, OS_EnterRegion() is executed as a call of the new function OS_EnterRegionFunc(). This call can not be optimized away or delayed by the compiler, so entering the critical region is always completed before internal datastructures are accessed or modified. The problem existed in all previous embOS versions for GNU compiler and is fixed with version 3.86d. The following embOS API functions were affected:
    OS_DeleteCSema()
    OS_DeleteRSema()
    OS_GetNumTasks()
    OS_InsertTask()
    OS_IsTask()
    OS_MEMF_Create()
    OS_MEMF_Delete()
    OS_MEMF_FreeBlock()
    OS_Request()
    OS_ResumeAllSuspendedTasks()
    OS_SetTaskName()
    OS_SuspendAllTasks()
    OS_TaskIndex2Ptr()
    OS_Unuse()
    OS_Use()
    OS_UseTimed()

Version 3.84c [20. Feb 2012]

New Features

  1. New embOS sources V3.84c.
    embOS comes with new features which are described in the generic manual and release notes.
  2. Nested interrupts supported with VIC.
    The VIC support was corrected and nested interrupt support for VIC was added.

Program corrections

  1. VIC support corrected.
    Interrupt handling with VIC did not work correctly in previous versions.

Version 3.84 [14. Nov 2011]

New Features

  1. Support of Vectored interrupt controller added.
    embOS comes with additional code and modified task switching functions which allow usage of the vectored interrupt controller.
    The VIC support is included in the embOS libraries since embOS versin V3.84.
    The VIC is supported without any modification on the target application.
    When the VIC is used in the target CPU, the required modified task switch functions and interrupt support are automatically selected from the embOS library.
  2. Update to new embOS sources.
    embOs comes with new features which are described in the generic release notes.

Known problems / Limitations

  1. Quick nested interrupts with VIC not supported.
    The current version of embOS can not be used with Quick nested interrupts and VIC.
    The Altera interrupt handler may fail with higher nesting levels, embOS does not deliver an interrupt handler to solve the problem.

Version 3.82h [09. Jul 2010]

New Features

  1. Update to the new NIOS Software Build Tools V9.1
    With version 9.1 of the NIOS software, new Software build tools are delivered from Altera
    The NIOS projects require the application and a BSP. The BSP replaces the former syslib of the NIOS II IDE projects.
    embOS now comes with a BSP which can be used to add embOS to a project under the new Software build tools.
    An embOS syslib is still delivered for those customers which want to continue working with the NIOS II IDE.
  2. Update to new embOS sources.
    embOs comes with new features which are described in the generic release notes.

Improvements

  1. embOS round-robin scheduling may be disabled.
    Round-robin scheduling may be disabled by recompiling sources with OS_RR_SUPPORTED defined as 0.
    This will save some bytes of RAM and ROM and may make sense for small CPUs.

Version 3.80h [28. Jul 2009]

New Features

  1. Update to new embOS sources.
    embOs comes with new features which are described in the generic release notes.
  2. XR libraries delivered for embOS NIOS.
    The XR libraries (eXtreme Release) allow fastest scheduling and may be used for applications which do not need task names or round robin scheduling.

Improvements

  1. embOS scheduler optimized.
    embOs version 3.80 uses internal data structures which allow more effective scheduling and data handling.
    This results in faster context switch times and faster execution of other scheduler operations.

Version 3.60d1 [04. Dec 2008]

New Features

  1. embOS interrupts are not nestable per default.
    The interrupt handler for embOS timer tick and the optional UART for embOSView in Rtosint.c were modified to be not nestable per default.
    The configuration switch ALLOW_NESTABLE_INTERRUPTS may be modified to enable nested intrrupts for the embOS system interrupts.

Version 3.60d [03. Jun 2008]

Known problems / Limitations

  1. Separate exception stack can not be used.
    Using embOS, the separate exception stack option must not be enabled in the system library options.

Version V3.60c [24. Apr 2008]

Improvements

  1. New generic embOS version 3.60c used.
    The new assertion OS_ASSERT_INIT_CALLED() checks whether OS_InitKern() was called before OS_CreateTask() or OS_CreateTaskEx() is called.

Version V3.60b [18. Apr 2008]

Features

  1. New generic embOS version 3.60b used.
    All new features, improvements and corrections of the new generic embOS sources are listed in the Release_Generic.html document.

Version 3.28q1 [09. Jan 2008]

Program corrections

  1. Separate Exception stack can not be used.
    The syslib configuration allows selection of a separate exception stack.
    This option can not be used with embOS !
    In previous versions, it was documented that this option may be used when interrupts are not nestable. When separate exception stack was enabled, the task switch from interrupt did not work.
    Now an error message is generated if this option is selected in the system library settings. This problem existed in all previous versions of embOS for NIOS and is fixed with version 3.28q1.

Version 3.28q [17. Feb 2006]

Program corrections

  1. Problem with suspended tasks which were on delay fixed.
    If a task which was on delay was suspended, the delay timer for that task was not handled.
    This might have resulted in additional longer delay when the task was resumed later.
    This problem existed in all previous embOS versions and is fixed with version 3.28q.>
  2. OS_EnterNestableInterrupt() / OS_LeaveNestableInterrupt() corrected.
    For NIOS 2 CPU using standard interrupt handler from ALTERA HAL, OS_EnterNestableInterrupt did not re-enable interrupts correctly.
    When an embOS function was called from within an interrupt handler which used OS_EnterNestableInterrupt(), the embOS function returned with interrupts disabled.
    This problem existed in all previous embOS versions for NIOS 2 and is fixed with version 3.28q.

Version 3.28p [17. Feb 2006]

New Features

  1. New error handling for version without round robin scheduling.
    In debug versions of embOS, OS_Error() is called with error code OS_ERR_TASK_PRIORITY, if a task is created with a priority which is already assigned to an other task.
    OS_Error() is also called with the same errorcode, if a task priority is assigned by call of OS_SetPriority() and the new pririty is already assigned to an other task.
    Round robin switching can be disabled by recompiling sources with OS_RR_SUPPORTED defined as 0.

Program corrections

  1. OS_Suspend() corrected.
    OS_Suspend() did not work corretly, when the current task was suspended from within an interrupt handler, or from a critical region.
    The application crashed, or called the embOS error handler OS_Error() with error code OS_ERR_INV_TASK (128).
    As OS_Suspend() automatically enters a critical region in debug-trace builds, OS_Suspend() also failed, when it was called to suspend the current task in debug-trace builds of embOS.
    This problem existed in all previous embOS versions and is fixed with version 3.28p.
  2. >
  3. OS_UART interrupt handler for embOSView corrected.
    The interrupt handler for communication between embOS and embOSView was corrected.
    The previous version wasted some time inside the interrupt which could slow down the application and increased latency of other interrupts.
    This problem existed in all previous embOS versions and is fixed with version 3.28n.

Version 3.28n [06. Feb 2006]

New Features

  1. embOS library version available.
    Now, embOS for NIOS II comes as library version which speeds up project compilation.

Improvements

  1. embOS round-robin scheduling may be disabled.
    Round-robin scheduling may be disabled by recompiling sources with OS_RR_SUPPORTED defined as 0.
    This will save some bytes of RAM and ROM and may make sense for small CPUs..

Version 3.28l [09. Nov 2005]

New Features

  1. OS_SignalCSemaMax().
    New counting semaphore handling function which specifies a maximum count value.
    This allows counting semaphores used as binary semaphores.

Program corrections

  1. OS_MEMF_Free() added.
    The function OS_MEMF_Free() was not included in embOS libraries, but was documented in embOS users manual and was also declared in RTOS.h.
    This problem existed in all previous embOS versions and is fixed with version 3.28l.

Version 3.28i [09. Nov 2005]

New Features

  1. OS_DeleteRSema()
    New resource semaphore handling function allows to delete resource semaphores during runtime.

Version 3.28k [09. Nov 2005]

Program corrections

  1. OS_MEMF_IsInPool() corrected.
    OS_MEMF_IsInPool() failed, if a pointer was checked which pointed to the first address after the memory pool. This pointer was reparted as belonging to the pool.
    This problem existed in all previous embOS versions and is fixed with version 3.28g.

Version 3.28h [09. Nov 2005]

New Features

  1. Additional error checks in debug builds of embOS
    OS_CreateRSema() now generates an error, when the addressed resource semaphore was already created before.
    OS_CreateMB() now generates an error, when the mailbox was already created before.
    OS_CreateTimer() now generates an error, when the software timer was already created before.
    OS_MEMF_Create() now generates an error, when the fixed size memory pool was already created before.

Program corrections

  1. OS_MEMF_IsInPool() corrected.
    OS_MEMF_IsInPool() failed, if a pointer was checked which pointed to the first address after the memory pool. This pointer was reparted as belonging to the pool.
    This problem existed in all previous embOS versions and is fixed with version 3.28g.

Version 3.28g [06. Feb 2006]

New Features

  1. OS_GetSuspendCnt()
    New info function to examine suspension state and suspension count of a task.

Improvements

  1. embOS scheduling simplified.
    Task activation and deactivation on "waitable objects" as mailboxes, semaphores, events, fixed size memory blocks now all use the same scheduling method.
    This modification saves ROM and RAM and makes scheduler easier to understand and to maintain.
    Applications which accessed internal data structures of waitable objects directly have to be modified.

Program corrections

  1. OS_WakeTask() for trace build corrected.
    OS_WakeTask() in trace build disabled task switches.
    This problem existed since version 3.24 and is fixed with version 3.28g.
  2. OS_GetMailTimed() / mailbox handling corrected.
    During call of OS_GetMailTimed, interrupts were re-enabled too early. If a mail was just put into a mailbox and the timeout occurred at the same time, a mailbox internal control variables which managed waiting tasks was set to a wrong value.
    This resulted in wrong mailbox handling and caused task waiting for mail kept suspended, even though, mail was available. This problem existed in all previous versions of embOS and is fixed with version 3.28g.

Version 3.26a [09. Nov 2005]

Program corrections

  1. OS_MEMF_Release() corrected.
    OS_MEMF_Release() might have failed according to absolute address of memory block.
    The problem occurred because address calculation was done with 16bit interger value.
    Calculation was modified to use 32bit values to fix the problem.

Version 3.26 [09. Feb 2005]

New Features

  1. Update for new NIOS2 V1.1
    Modified version of ALTERA HAL API functions required an update of embOS for NIOS2 V1.1
  2. OS_Terminate() modified
    Task may be terminated anytime, regardless of task state.
    All resources claimed by the terminated task are automatically released.

Version 3.22a [01. Nov 2004]

New Features

  1. OS_PutMailFront() / OS_PutMailFront1
    New mailbox functions to enable LIFO behavior of mailboxes.
  2. OS_PutMailFrontCond() / OS_PutMailFrontCond1()
    New conditional mailbox functions to enable LIFO behavior of mailboxes.

Version 3.20 [01. Nov 2004]

New Features

  1. Initial version.