Segger Logo Embedded Software Solutions
Software productsHardware productsDownloadsPricesCustomersOur PartnersSitemapForumAbout us
Release notes embOS version 3.60a1 for ARM and IAR compiler V4.42
  1. Tool chain used for build
  2. New features
  3. Improvements
  4. Program corrections
  5. Known problems/limitations
  6. Release history
  7. Miscellaneous

Tool chain used for build

The following tools have been used:

Compiler:  IAR ICCARM  V4.42A
Assembler: IAR AARM    V4.42A
Librarian: IAR XAR     V1.03L
Workbench: IAR IARIDE  V4.7A

New features

Version 3.60a1

  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

  1. New embOS sources V3.60a used
    The new of embOS version 3.60a are described in the embOS generic manual and release notes.

Version 3.52a

  1. New library mode XR allows extremely compact applications
    The new XR libraries may be used to build extremely compact applications to save space in RAM and ROM and speed up context switching time.
    The XR embOS libraries are compiled with round robin scheduling disabled and task names disabled, which results in smaller data structures, smaller code size and faster context switching time.
  2. Sample projects now sorted into manufacturer specific folders
    All sample projects and workspaces are now sorted into manufacturer and CPU specific subfolders.
  3. NXP LPC23xx CPU support
    Start project and board support package for NXP LPC23xx CPUs added.
  4. NXP LPC3180 CPU support
    Start project and board support package for NXP LPC3180 CPUs added.
  5. ST STR750 CPU support
    Start project and board support package for ST STR750 CPUs added.
    The start project is prepared to run on the ST STR750-EK eval board.
  6. Task switch time can be measured by application
    embOS now comes with sample applications which allow accurate measurement of task switch time in a running application.
  7. MMU and cache handling added for ARM926 CPUs
    embOS now comes with a module to support MMU and caches for ARM 926CPUs.
    The sample project for ATMEL AT91SAM9261 CPU uses this module.
  8. Libraries for non interworking mode delivered with embOS
    embOS now comes with libraries for ARM and thumb mode which were compiled with non interwork option.
    These libraries may be used in projects without interworking and generate smaller faster code.
    Previous versions of embOS were limited to use interworking option.
  9. Libraries for ARM9E and other ARM derivates with core 5 architecture delivered with embOS
    embOS now comes with libraries for ARM 5 architecture.
    Previous versions of embOS came with libraries for core 4 architecture only, which could be run on core 5 as well, but might have been less efficient.
  10. OS_INIT_SYS_LOCKS() implemented
    May be used to call initialization code for thread safe system libraries when using IAR compiler V4.41A or newer.

Version 3.32d

  1. OS_Q_GetPtrTimed() implemented
    New queue retrieval function which waits for a message with specified timeout.

Version 3.32c

  1. OS_EVENT_WaitTimed() implemented
    New event object function to wait for an event with a timeout limit.

Version 3.32b

  1. Task context modified for debug builds
    The number of task activations is now part of the task context in debug builds.
    The number of activations are therefore displayed in the task list window of embOS plugin, when an embOS debug library is used.
    Previous versions of embOS showed this information in profiling builds only.
  2. TI TMS470R1B1M supported
    embOS now comes with a sample project for TI TMS470R1B1M CPU which runs on IAR TMS470R1B1M eval board.
    The project is prepared for debugging with CSpy and J-Link in FLASH or RAM, or using CSpy simulator.

Version 3.32a2

  1. ATMEL AT91SAM9260 supported
    embOS now comes with a sample project for ATMEL AT91SAM9260 CPU which runs on AT91SAM9260-EK eval board.
    The project is prepared for debugging with CSpy and J-Link in SDRAM, or using CSpy simulator.

Version 3.32a

  1. A parameter may be passed to a task function
    Using the new embOS functions OS_CREATETASK_EX() or OS_CreateTasEx() allows to pass a void pointer as parameter to a task.
  2. ATMEL AT91SAM9261 supported
    embOS now comes with a sample project for ATMEL AT91SAM9261 CPUs which runs on AT91SAM9261-EK eval board.
    The project is prepared for debugging with CSpy and J-Link in RAM, or using CSpy simulator.

Version 3.32

  1. Event objects introduced
    Event objects are standalone objects which are not assigned to a specific task.
    Event objects may be used to synchronize one or multiple task to a specific event.
    Events can be triggered from a task, a timer, or an interrupt handler.
  2. embOS stack check modified
    The internal stack check of embOS, used in stack check or debug builds, was modified to avoid some problems with IARs stack check plugin for CSPy.
    Now embOS uses the same character for stack check as the stck check plugin from IAR.
    This ensures, IARs stack check plugin will show correct level of CSTACK and IRQ_STACK usage.
  3. embOS IAR kernel awareness plugin updated
    Modified stack check version of embOS required a modified embOS plugin for IAR CSpy.
    The new Plugin, version 1.00e, can handle both versions of embOS stack check methods, the previous version, and the new one, which uses a different stack check character.
    The previous embOS Plugin now does not show correct values for task stack usage.
    To replace the older plugin, please follow the instructions in the embOS plugin documentation.

Version 3.30d1

  1. Analog Devices ADuC702x series supported
    embOS now comes with a sample project for Analog Devices ADuC702x series CPUs which runs on ADuC702x eval boards.
    The project is prepared for debugging with CSpy and J-Link in RAM and FLASH, or using CSpy simulator.
  2. OKI ML69620x series supported
    embOS now comes with a sample project for OKI ML69Q6203 series CPU which runs on ML69Q6203 eval board.
    The project is prepared for debugging with CSpy and J-Link in RAM, or using CSpy simulator.

Version 3.30a

  1. ATMEL AT91SAM7A3 supported
    embOS now comes with a sample project for ATMEL AT91SAM7A3 series CPUs which runs on AT91SAM7A3-EK eval board.
    The project is prepared for debugging with J-Link in RAM and ROM.
  2. ATMEL AT91SAM7X supported
    embOS now comes with a sample project for ATMEL AT91SAM7X256 series CPUs which runs on AT91SAM7X-EK eval board.
    The project is prepared for debugging with J-Link in RAM and ROM.
  3. embOS internal time handling modified to allow long delays
    For 8- and 16-bit CPUs the maximum range for delays and timer periods is limited to 32767 embOS timer ticks, because time comparison ist done by integer calculation.
    By recompiling sources with datatype OS_TIME defined as signed long, longer delays and timer periods up to 2147483647 ticks can be realized.
    The embOS libraries of object versions for 8- and 16-bit CPUs are still delivered with the limitation to 32767 timer ticks.

Version 3.28q

  1. ATMEL AT91RM9200 series supported
    embOS now comes with a sample project for ATMEL AT91RM9200 series CPUs which runs on AT91RM9200-EK evalboard.
    The project is prepared for debugging with J-Link in RAM and ROM.

Version 3.28p

  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 priority is already assigned to an other task.
    Round robin switching can be disabled by recompiling sources with OS_RR_SUPPORTED defined as 0.

Version 3.28n

  1. ATMEL AT91SAM7S256 series supported
    embOS now comes with a sample project for ATMEL AT91SAM7S256 series CPUs which runs on AT91SAM7S-EK evalboard.
    The project is prepared for debugging with J-Link.

Version 3.28m3

  1. ST STR91x series supported
    embOS now comes with a sample project for STR91x series CPUs which runs on MB910 evalboard.
    The project is prepared for debugging with J-Link or CSpy simulator.

Version 3.28m2

  1. OKI ML67Q4050/ML67Q4060 series supported
    embOS now comes with a sample project for OKI ML67Q4050/ML67Q4060 which runs on AME-51-AS evalboard.
    The project is prepared for debugging with J-Link or CSpy simulator.

Version 3.28l

  1. OS_SignalCSemaMax()
    New counting semaphore handling function which specifies a maximum count value.
    This allows counting semaphores used as binary semaphores.
  2. Libraries for "Full" library configuration.
    embOS now comes with libraries for "Full" library configuration option. Libraries for "Normal" library configuration are also still delivered with embOS.

Version 3.28k

  1. Thread safe system libray support added.
    To enable thread safe usage of heapmanagement in C++ applications, as well as file operations and usage of normal heapmangement functions, support of generation and usage of thread safe IAR system libraries was added to embOS.
  2. embOS awareness Plugin for IAR CSpy
    A new plugin for IAR CSPy which shows information about tasks, system variables, mailboxes, timers and semaphores is delivered with embOS.

Version 3.28i

  1. OS_DeleteRSema()
    New resource semaphore handling function allows to delete resource semaphores during runtime.
  2. Board support packages for Sharp CPUs
    Ready to go start projects for LogicPD card engines with Sharp CPUs are now delivered with embOS.
    Support for LH79520 added
    Support for LH79524 added
    Support for LH7A400 added
    Support for LH7A40a added

Version 3.28h

  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_CreateCSema() now generates an error, when the addressed counting 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 addressed fixed size memory pool was already created before.
  2. Simulation macros for CSpy simulator modified
    The sample interrupt simulation macros for CSpy simulator were updated to new syntax used in latest IAR CSpy version 4.30.
    In configurations which are setup for CSpy simulator, these new macros are selected per default.
    When using IAR compiler and CSpy version 4.20A, the CSpy simulation macros named "*_V420A.mac" have to be used to enable interrupt simulation for embOS.

Version 3.28g

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

Version 3.26

  1. OS_Terminate() modified
    Tasks may be terminated anytime, regardless of task state.
    All resources claimed by the terminated task are automatically released.

Version 3.24

  1. STMircorelectronics STR71x CPU support
    Start project and board support package for ST STR71x CPUs added.
  2. Philips LPC2xxx CPU support
    start project and board support package for Philips LPC2x CPUs added.
  3. Vectored interrupt controller support
    Additional functions added to install interrupt handlers for ARM CPUs with vectored interrupt controller.

Version 3.22a

  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

  1. OS_Suspend() / OS_Resume() implemented
    New functions to suspend and resume tasks unconditionally.
  2. Fixed size memory blocks implemeted
    New functions to allocate fixed size memory blocks from embOS.
  3. Dynamic memory allocation supported by embOS
    Thread safe dynamic memory allocation functions implemented.

Version 3.10q

  1. New IAR Workbench version 3.40
    New IAR Embedded Workbench and compiler version supported.

Version 3.10n

  1. Interworking
    Because IAR workbench default mode is interworking now, we also have changed compiler options for embOS libraries to interworking mode.

Version 3.10k

  1. OS_GetMailTimed()
    New mailbox retreiving function with timeout.

Version 3.10d

  1. OS_GetpCurrentTimer()
    New info routine. May be used in timer callback routines to examine which timer expired.
  2. OS_GetpCurrentTask()
    New info routine. May be used to examine current running task.

Version 3.10

  1. Data format for communication with embOSView modified
    For terminal I/O in embOSView, the data farmat was changed. Therefore embOSView V3.10 or later is required.
  2. OS_WaitSingleEvent()
    Unmasked events remain unchanged when function returns.
  3. OS_WaitSingleEventTimed()
    Unmasked events remain unchanged when function returns. Timeout for waiting can be specified.

Version 3.08a

  1. Message Queue functionality enhanced
    OS_Q_GetPtrCond() function enables conditional request of data from Queue without task suspension.
    OS_Q_GetMessageCnt() functions delivers number of messages in the queue.

Version 3.08

  1. Message Queues
    Message queues enable intertask communication with messages of various size.

Version 3.06f

  1. OS_Use now returns a value
    When using a resource semaphore with a call of OS_Use(), the actual usage counter of the requested semaphore is returned as integer value. This may be helpful for some applications and is a lot more efficient than calling OS_Use() and then check the usage counter by calling OS_GetSemaValue().

Version 3.06d1

    All features of generic 3.06d kernel supported.

Version 3.06

    All features of generic 3.06 kernel supported.

Improvements

Version 3.52e

  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.52a

  1. Scheduler optimized
    The embOS scheduler was optimized to reduce task switching time and interrupt latencies.
  2. OS_Yield() now writes an entry into the trace buffer
    When using the debug library with trace capabilities, OS_Yield() writes an entry into the trace buffer which shows the function call and the calling task.
    embOSView version 3.40d is required to show this entry.
  3. Queue management improved.
    For some CPUs, the buffer start address for Queues has to be aligned. Now embOS automatically corrects the alignment, if required.
  4. Counting semaphores improved.
    The counters of counting semaphores are now integer values.
    Error handling is also improved. When a counting semaphore overflows, the embOS error handler OS_Error() is called in debug builds.
  5. Task switch time improved.
    Scheduling optimized to improve task switch time.
  6. Task switch time improved for task events.
    Task event handling modified to improve task switch time for tasks waiting on events.
  7. Interrupt latency improved.
    During task switch, the time period when interrupts are disabled is reduced.
  8. embOS timer tick handler improved.
    The standard timer tick handler run faster now. The embOS internal time variable is incremented by 1 on every timer tick.
    When different increments are required, the new timer tick handler OS_HandleTick_Ex(), OS_TickHandler_Ex() or OS_HandleTickDI_Ex() have to be used by application.
    Different inctrements may be configured by a call of OS_CONFIG().
  9. Initialization for STR91x optimized.
    The initialization for FLASH access and internal data RAM access is modified to allow faster access of data and program memory.
    The Flash prefetch queue is used, the wait states for internal RAM access are set to 0.
  10. Task switch to OS_Idle() modified.
    The call of OS_Idle() from OS_ChangeTask can be overwritten (inhibited) by defining the macro OS_IDLE() which is norammly defined as OS_Idle().
    This allows task switching via an exception for specific CPU/compiler versions.
  11. Pointer comparison improved for fixed size memory pools (OS_MEMF module).
    Some compiler produced wrong pointer comparison code in far memory model.
    For specific CPU/compiler versions, the new OS_POINTER_TO_VALUE() function was inroduced to deliver correct results in pointer comparison.

Version 3.32d

  1. Startup code and clock initialization for AT91SAM9261 modified.
    The start project for embOS can now be run from external memory. Previous version did not initialize processor clock correctly if the application was loaded from external memory by ATMEL bootloader.
  2. Startup code and clock initialization for AT91SAM9260 modified.
    The start project for embOS can now be run from external memory. Previous version did not initialize processor clock correctly if the application was loaded from external memory by ATMEL bootloader.

Version 3.28n

  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.28g

  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.

Version 3.24

  1. Stack check performance increased
    Stack check now runs much faster on 32- and 16-bit target CPUs.

Version 3.10q

    OS_CreateTask now initializes profiling variables. (Required if TCB is used multiple)

Version 3.06f

    None.

Version 3.06d1

    Performance improved.

Version 3.06

    First version. None.

Program corrections

Version 3.60a

  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.52d

  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

  1. OS_Suspend() corrected
    When using the debug library with trace capabilities, a call of OS_Suspend() wrote a wrong trace code into the trace buffer.
    Instead of writing the code for task suspension, the code for task termination was written.
    The function itself worked correctly, only the data written into the trace buffer was wrong.
    The problem existed in all previous embOS versions and is fixed with version 3.40d.
  2. RAM Target for AT91M40xxx corrected.
    The RAM target linker file was not correct for the EB40a board.
  3. OS_Unuse() corrected
    OS_Unuse() must not be called from a task that does not claim the resource semaphore.
    According to the documentation, the debug build of embOS should generate a call to OS_Error() if this fault happens.
    All previous versions of embOS did not call OS_Error(). Now, OS_Error() will be called in that situation with error code 156: OS_ERR_RESOURCE_OWNER().

Version 3.32l

  1. OS_EVENT_Delete() corrected
    OS_EVENT_Delete() did not work correctly. OS_LeaveRegion() was called inside the function without calling OS_EnterRegion() bfore.
    In debug builds of embOS, the error handler OS_Error() was called with error 151 (OS_ERR_LEAVEREGION_BEFORE_ENTERREGION).
    In release builds the system was blocked because the underflow of region count inhibts all further task switches, or system crashes, because incrementing the region count the next time allows task switches instead of blocking them. The problem existed in all previous versions and is fixed with version 3.32l.

Version 3.32k

  1. Handler function _OS_OnTx() for serial communication to embOSView corrected.
    The transmission handler for communication with embOSView might have sent incorrect data to embOSView, because internal control state was updated after sending the data.
    The problem occured on a new embOS port for a specific CPU only and is fixed with version 3.32k.

Version 3.32h

  1. OS_Error() was required in release build when resource semaphores were used.
    When using release build libraries and resource semaphores, the embOS error handler OS_Error() was required and the file OS_Error.c had to be compiled and linked in a project.
    The problem existed since version 3.28i of embOS and is fixed with version 3.32h.

Version 3.32e

  1. OS_GetMessageCnt() corrected.
    The type of the retun value of OS_GetMessageCnt() was an unsigned integer in release builds, but an integer in debubg builds.
    This was corrected to return an unsigned integer in all builds.
    The problem existed in all previous versions of embOS end is fixed with version 3.32e.

Version 3.32a1

  1. Problem with "Full" library configuration fixed.
    The libraries for "Full" library configuration of previous version can not be used in a project with "Full" library configuration, because they were compiled with settings for normal library configuration.
    This problem is fixed with version 3.32a1 of embOS for ARM IAR.
    embOS libraries for "Full" library configuration are not needed anymore. The normal libraries can be used in both configurations.
  2. FIQ problem fixed
    Previous versions of embOS ARM IAR sometimes disabled FIQ which then resulted in interrupt latency for FIQs.
    This bug is fixed with version 3.32a1 which newer disables FIQ.
    FIQ now is enabled during OS_Start() and during execution of embOS internal functions.

Version 3.32a

  1. LPC2xxx support corrected.
    The OS_GetTimeCycles() function, used for high resolution time measurement and profiling, contained a bug which resulted in wrong timing information when a timer interrupt was pending. This bug existed in LPC2xxx specific implementation of all previous embOS versions and is fixed with version 3.32a.
  2. embOSView corrected.
    embOSView sometimes showed wrong task state "Terminated" for tasks which were not terminated.
    This bug existed in all previous versions of emBOSView and is fixed with version 3.32a.

Version 3.30d

  1. OS_MEMF_Create() corrected.
    Alignment check of buffers for fixed size memory blocks did not work correctly in debug libraries of embOS.
    OS_Error() was called during OS_MEMF_Create(), even though the memory pool buffers start address was correctly aligned.
    This problem existed since embOS version 3.28m in all debug build libraries and is fixed with version 3.30d.
  2. SAM7_RAM.mac corrected.
    This macro file for SAM7S CPUs contained a hardware reset command which was executed during initialization after RAM remapping.
    Execution of a hardware reset after remapping and program download results in wrong memory layout of the target CPU and debugging fails.
    Previous debug tools did not perform the hardware reset, therefore this bug was not noticed before.

Version 3.30b

  1. OS_Suspend() corrected.
    OS_Suspend() did not work correctly, when an activated task with higher priority than the running task was suspended.
    When the task with highest priority was suspended during system initialization before embOS was started, embOS crashed during the call of OS_Start(), or called the embOS error handler OS_Error() with error code OS_ERR_INV_TASK (128).
    The same crash occured, when the application was running in a critical region and a task with higher priority was activated, but not started because of the critical region, and was then suspended by a call of OS_Suspend().
    This problem existed in all previous embOS versions and is fixed with version 3.30b.

Version 3.28q

  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.

Version 3.28p

  1. OS_Suspend() corrected.
    OS_Suspend() did not work correctly, 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.
  1. Alignment problems fixed for fixed size memory blocks
    Some CPUs, mainly the 32bit RISC types, require aligned buffer start addresses for fixed size memory pools.
    The debug version of embOS now checks alignment of buffer start address and data blocks in the buffer. If data blocks and buffer start address is not aligned, an error is generated and embOS error handler is called during creation of a fixed size memory pool.
    This problem existed in all previous embOS versions and is fixed with version 3.28m.

Version 3.28l

  1. OS_MEMF_FreeBlock() added
    The function OS_MEMF_FreeBlock() 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.28k

  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 reported as belonging to the pool.
    This problem existed in all previous embOS versions and is fixed with version 3.28g.

Version 3.28g

  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 occured 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

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

Version 3.20c

  1. OS_GetMailTimed() corrected
    OS_GetMailTimed() did not retrieve a mail after 256 calls, the waiting task remained suspended. Corrected with version 3.20c of embOS.
    This problem exists in all previous embOS versions and is fixed with version 3.20c.

Version 3.10r

  1. OS_TASK structure definition modified
    Previous definition of OS_Task structure may cause linker warnings [w6] and [w35] even though everything was correct.
    The problem was caused by unions defined inside a structure.
    OS_TASK definition was modified to avoid those linker warnings.

Version 3.10q

  1. OS_GetMail
    OS_GetMail functions corrected (interrupts disabled before call of _GetMail).

  2. OS_Terminate problem with RR
    OS_Terminate problem with RR tasks corrected. TimerTick could set RR/PP pending between UNMARKTASK and OS_Switch. OS_Switch will then call OS_DoRR, which could append OS_pCurrentTask (the one you want to terminate if e.g. OS_Terminate(NULL)).

Version 3.10n

  1. Sample interrupt handler
    For embOS it is not legal to call OS_EnterInterrupt again after final call of OS_LeaveInterrupt has been made. In the sample OS_irq_handler shipped with embOS, there was a possible call of OS_EnterInterrupt after OS_LeaveInterrupt. The sample OS_irq_handler implementation has been corrected.

Version 3.06h

  1. OS_Unuse error code corrected
    When calling OS_Unuse() more often than OS_Use(), the debug version generated an OS_ERR_TASKLIST_CORRUPT error instead of OS_ERR_UNUSE_BEFORE_USE.
    This problem exists in all previous embOS versions and is fixed with version 3.06h.

Version 3.06f

  1. Round Robing Task Problem corrected
    In very specific situation it was possible that a round robin task got 100%
    of CPU time for round robin tasks instead of sharing that time with other
    round robin tasks.

Version 3.06d1

    None.

Version 3.06

    None.

Known problems/limitations

Version 3.50b

    None.

Release history

Version Release date Short explanation
V3.60a1 11. Mar 2008 New embOS sources 3.60a
MMU handling for 926 corrected.
MMU and cache handling added.
V3.52e 27. Nov 2007 BSP for AT9260 optimized
V3.52d 31. Oct 2007 Corrected version
V3.52a 03. Sep 2007 New embOS sources 3.52a
Start projects now located in manufacturer specific subfolders.
V3.32e 07. Nov 2006 OS_GetMessageCnt() corrected.
V3.32d 05. Nov 2006 OS_Q_GetPtrTimed() added.
V3.32c 22. Sep 2006 OS_EVENT_WaitTimed() added.
V3.32b 18. Sep 2006 TI TMS470 supported.
Enhanced debug information.
V3.32a2 22. Aug 2006 AT91SAM9260 supported.
V3.32a1 11. Aug 2006 "Full" library configuration bug fixed
FIQ bug fixed.
V3.32a 04. Aug 2006 Extended task implemented.
AT91SAM9261 supported.
V3.32 18. Jul 2006 Event objects implemented
V3.30d1 13. Jul 2006 ADuC702x CPUs supported
OKI 69ML6203 series supported
V3.30d 20. Jun 2006 OS_MEMF_Create() corrected
V3.30b 18. May 2006 New sources version 3.30b, OS_Suspend() corrected
V3.30a 11. Apr 2006 AT91SAM7A3 / AT91SAM7X series supported
V3.28q 27. Feb 2006 AT91RM9200 series supported
V3.28p 16. Feb 2006 New error handling for version without round robin scheduling
V3.28n 05. Feb 2006 AT91SAM7S256 series supported.
V3.28m3 28. Dec 2005 ST STR91x series supported.
V3.28m2 15. Dec 2005 OKI ML67Q4050/ML67Q4060 series supported.
V3.28m 29. Nov 2005 "Full" library configuration support added.
V3.28k 27. Oct 2005 Thread safe system library support added. New corrected embOS sources V3.28k
V3.28i 14. Oct 2005 New embOS sources 3.28i with new function OS_DeleteRSema(), update to new IAR compiler 4.30A
V3.28h 29. Aug 2005 New embOS sources 3.28h, Enhanced error checks
V3.28g 23. Aug 2005 New embOS sources 3.28g, Upgrade to compiler V4.20A
V3.24 25. Nov 2004 New embOS sources 3.24, Upgrade to compiler V4.11A
V3.20f 27. Apr 2004 Upgrade to new IAR compiler/workbench 4.10A
V3.20d 22. Jan 2004 New embOS sources V3.20, OS_GetMailTimed corrected
V3.10q 29. Aug 2003 New IAR compiler V3.40A
V3.10n 05. Mar 2003 New IAR compiler V3.30A
V3.10k 13. Jan 2003 Upgrade to new generic source V3.10k and new IAR compiler V3.21
V3.06f 24. Oct 2001 Upgrade to new generic source V3.06f
V3.06d1 30. Aug 2001 Cleanup, performance improved
V3.06 23. Jul 2001 First version with release history

Miscellaneous

This document was first released with version 3.06 of the software.
Software released earlier is documented internally. This information is available at request.

Copyright SEGGER Microcontroller GmbH & Co.KG. All rights reserved.
For more information, please visit our web site www.segger.com or contact us at info@segger.com
Last update: March 17, 2008