Release notes for embOS Version 3.88g1 for M16C/R8C and IAR compiler

  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 ICCM16  V3.50.2.40198
Assembler: IAR AM16C   V3.50.2.40198
Librarian: IAR XLIB    V5.0.2.5
Workbench: IAR IDE     V6.0.3.1527

New features

Version 3.88g

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

Version 3.86e

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

Version 3.86c

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

Version 3.82w

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

Version 3.82f

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

Version 3.82

  1. New embOS plugin for C-Spy with full task awareness
    embOS for M16C now comes with the latest embOS plugin V3.80.3 which supports full task awareness for M16C and R8C processors.
    The state and call stack of all tasks can be examined, even for suspended tasks.
  2. Update to new generic embOS sources V3.82.
    embOS V3.82 comes with several new functions and improvements. All new features are described in the generic manual and release notes.

Version 3.32m

  1. OS_TimerEx, Extended timer implemented
    Extended timers are software timers which call a user defined callback function when the timer expires.
    In comparison to normal embOS timers, a parameter is passed to the timer callback function.
    The parameter value is initialized during timer creation.

Version 3.32j

  1. OS_CSemaRequest implemented
    May be used to decrement a caounting semaphore, if a signal is available.
    The function never blocks the calling task and delivers a result which indicates whether the semaphore was available.

Version 3.32f

  1. OS_INIT_SYS_LOCKS() implemented
    May be used to include initialization code for thread safe system libraries.
    If defined, this new function is called from OS_InitKern().

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.

Version 3.32a

  1. A parameter may be passed to a task function
    Using the new embOS functions OS_CREATETASK_EX() or OS_CreateTaskEx() allows to pass a void pointer as parameter to a task.

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.

Version 3.30a

  1. 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.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 pririty 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.28l

  1. embOS plugin for IAR workbench
    The new embOS plug-in for IAR Embedded Workbench provides embOS awareness during debugging sessions.
    This enables you to inspect the state of several embOS primitives such as the task list, resource semaphores, mailboxes, or timers.
  2. OS_SignalCSemaMax()
    New counting semaphore handling function which specifies a maximum count value.
    This allows counting semaphores used as binary semaphores.

Version 3.28i

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

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.

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.24b

  1. Update for new IAR workbench 4.3 and compiler 3.10A
    Start projects and libraries updated for new IAR compiler.
    Serial ROM monitor, now included in CSpy, is supported.

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.
  4. Byte aligned objects supported by embOS
    Since version 3.20, libraries for byte aligned objects are included in standard distribution.
  5. Near constants supported by embOS
    Since version 3.20, libraries for near constants are included in standard distribution. These libraries are required for R8C CPU

Version 3.10p

  1. Fast interrupt mode introduced
    Inside embOS, interrupts are not disabled. Interrupt priority is raised to level 4 instead.
    This enables high speed interrupt processing with very short interrupt latency for interrupts running at priorities above 4.
    This mode is default in all delivered libraries and can only be changed by recompiling embOS sources.

Version 3.10k

  1. OS_GetMailTimed()
    New mailbox retrieving 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.06e

  1. embOS interrupts defined in c source file RtosInit.c
    The new version 3.06e defines all embOS interrupts in the c source file RtosInit.c. The embOS timer interrupt needs not to be defined in the additional vector definition file RTOSVect.asm.
    This has the advantage, that only one file has to be modified, if for some reason an other timer has to be used for embOS.

Version 3.06

  1. Serial interface for embOSView shared with application
    The serial interface used for communication with embOSView is now available for the application.
    embOSView can serve as a terminal for the target application in parallel with trace and profiling over the same serial interface.
    The user application can call the new function OS_SendString() to send data to the terminal, OS_SetRxCallback() to set a callback function for received characters.
  2. Trace build added
    embOS can be traced during runtime with embOS Viewer version 3.06.
    This allows monitoring of the API functions and their parameters called by the application.
    Task- and API-specific filters can be defined via embOSView or directly by the application program via new API calls.
    This functionality requires the trace build (NT, MT, FT or HT libraries)
  3. New event function
    OS_WaitEventTimed() implemented to handle timeout conditions during waiting for events.
  4. New info function
    OS_IsTask() implemented to check, whether task actually exists.
  5. New Mixed memory model supported
    embOS can be used in IARīs new Mixed memory model, which was introduced with compiler version 1.35A

Version 3.04i

  1. Support for embOSView
    embOS Viewer can communicate with embOS via UART if the MCU is properly initialized and the required interrupt routines are present. (Default is UART 1, 38400 baud). This can be easily changed in RTOSInit.c
    embOSView is now shipped with the software.
  2. Profiling
    New profiling builds allow measurement of task execution times.
  3. Improved support for nested interrupt
    OS_EnterNestableInterrupt(), OS_LeaveNestableInterrupt() defined.
  4. New timer functions introduced
    OS_SetTimerPeriod(),OS_GetTimerPeriod() introduced, to modify / check reload value of timer.
    OS_GetTimerStatus() introduced to check whether timer is active.
    OS_GetTimerValue() introduced to check remaining time of timer.
  5. Additional functions
    OS_SetTimeSlice() added to modify the timeslice of a task during runtime.
    OS_CreateCSema() modified; now an initial value of sema can be set.
  6. Modified functions
    OS_ClearEvent() now returns the actual state of events before clearing.

Improvements

Version 3.32i

  1. 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.

Version 3.32g

  1. 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.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.10p

  1. Fast interrupt mode introduced
    Inside embOS, interrupts are not disabled. Interrupt priority is raised to a higher level.
    This enables high speed interrupt processing with very short interrupt latency for interrupts running at priorities above the specified higher value.

Version 3.10f

  1. Memory requirements reduced
    Granularity enhanced for non embOSView builds to save ROM and RAM

Version 3.06g

  1. Memory requirements reduced
    Modified to save ROM and RAM space, when serial communication for embOSView is disabled.
  2. Alignment modified
    Internal data structures modified. This enables the "Byte align objects" compiler option.

Version 3.06e

  1. Context switching time improved
    Context switching time has been reduced to 322 clock cycles (20.1 us)
    (near model, M16C62 @16MHz)
  2. Interrupt latency time reduced
    Interrupt latency times have been reduced to better than 119 clock cycles (7.4 us)
    (near model, M16C62 @16MHz)

Version 3.06

  1. Context switching time improved
    Context switching time has been reduced to 384 clock cycles (24 us)
    (near model, M16C62 @16MHz)
  2. Interrupt latency time reduced
    Interrupt latency times have been reduced to better than 123 clock cycles (7.6 us)
    (near model, M16C62 @16MHz)

Version 3.04i

  1. Context switching time improved
    Context switching time has been reduced to 25 us
    (near model, M16C62 @16MHz)
  2. Interrupt latency time reduced
    Interrupt latency times have been reduced to better than 8 us
    (far model, M16C62 @16MHz)

Program corrections

Version 3.88g1

  1. Batch file CC.bat corrected.
    The CC.bat batch file used the wrong compiler option, thus the embOS libraries were built for speed and size balance but not for highest speed.
    The problem existed since versions 3.80l and is fixed with version 3.88g1.

Version 3.82w1

  1. Batch file CC_CPU.bat corrected.
    The embOS API function OS_SetFastIntPriorityLimit() was not included in libraries.

Version 3.82w

  1. Resource semaphore handling corrected.
    On 8 or 16 bit CPUs with high interrupt load, the scheduler might have failed when an interrupt occurred during a resource semaphore with waiting tasks was released by a call of OS_Unuse().

Version 3.82f

  1. OS_GetCPUState() corrected.

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.
  2. Round-robin task switching corrected.
    Round robin task switching did not work correctly in previous version. A task which was blocked for some reason could be activated. The system crashed during task switch.
    The problem existed since version 3.32j 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 occurred 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.32a

  1. 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.

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 occurred, 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.

Version 3.28m

  1. Alignment problems fixed for fixed size memeory 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 biffer 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_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.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_WaitCSemaTimed() corrected
    Semaphore handling was changed with embOS sources version 3.26.
    Unfortunately,during call of OS_WaitCSemaTimed() an internal control counter was decremented twice, which resulted in wrong control state of semaphore. Overflow of this counter caused, that the calling task remained suspended until the timeout expired, even though, the semaphore was signaled.
    This problem existed in version 3.26 only and is fixed with version 3.28g.
  3. 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

  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.24

  1. Task switch from interrupt corrected
    System could crash when interrupt handlers with priority 4 were used and those interrupt handlers performed a task switch.
    This problem exists in all previous embOS versions with fast interrupts and is fixed with version 3.24.

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. embOS tick interrupt handler corrected
    Accidentally, version 3.10p contained an embOS tick interrupt handler OS_ISR_Tick() in RTOSInit.c which does not work correctly.
    The interrupt handler delivered with version 3.10p did not disable interrupts during embOS internal operations. This may result in malfunction.
    OS_ISR_Tick() in RTOSInit.c was modified to correct this problem.

Version 3.10r

  1. OS_TASK structure definition modified
    Previous definition of OS_Task structure caused 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.10p

  1. GetMail functions corrected
    Internal functions for retrieving mail from a mailbox did not disable interrupts. This could cause message losses, when mail was written into mailboxes from within interrupt handlers.
    This problem exists in all previous embOS versions and is fixed with version 3.10p.

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 robin switch bug corrected
    Round robin task switch caused system malfunction when a higher prioritized task was activated from within an interrupt just the moment one of the round robin tasks was deactivated at the end of its time slice.
    This problem exists in all previous embOS versions and is fixed with version 3.06f.

Version 3.06e

  1. Task switch from interrupt corrected
    Multiple interrupts performing a taskswitch from within the interrupt handler caused a system malfunction. Further taskswitches were blocked. This error is corrected with version 3.06e.

Version 3.06b

  1. Compatibility to compiler version 1.33 added
    When IAR compiler version 1.33 was used, a link error occurred due to undefined externals.
    This was fixed by adding these defines to RTOSVect.asm, which is delivered as source file.
    Version 3.06 therefore can be used with IARs compiler version 1.35 as well as with the previous version 1.33.

Version 3.06a

  1. Task switch from interrupt fixed
    Task switch at the end of a user interrupt routine did not work, when the interrupt routine used local variables. This problem occurred with IAR compiler version 1.35A. This problem is fixed with version 3.06a of embOS.

Version 3.04i

  1. Modified functions
    OS_StartTimer() changed to match doc exactly.
    OS_GetMailCond() had assertions which did not permit usage in interrupt or software timers (debug build only). Fixed.

Known problems/limitations

Version 3.32m / 3.32m1

  1. embOS libraries version 3.32m can be used with IAR compiler version 3.21A or newer only
    The current IAR compiler, version V3.21A, has a modified calling convention. Parameter passing to functions has changed.
    Therefore the embOS libraries of embOS version 3.32m can not be used with older IAR compilers, because version 3.32m was compiled using IAR compiler V3.21A.
    When upgrading to new embOS libraries V3.32m, the new IAR workbench and compiler V3.21A has to be used.
    To use new embOS features of version 3.32m with an older version of IAR compiler, the version V3.32m1 of embOS for M16C has to be used.
  2. Simple calling convention not supported by standard embOS libraries
    Since version 2.10A, IAR introduced two different calling conventions (normal and simple). Standard embOS libraries were built for normal calling convention which is default for IAR projects. Simple calling convention may be used when embOS sources are recompiled. Therefore source version of embOS is required.
  3. 64bit-IEEE floating point calculation not supported by standard embOS libraries
    64bit floating point calculation may be used when embOS sources are recompiled. Therefore source version of embOS is required.

Release history

Version Release date Short explanation
V3.88g1 12. Feb 2018 Batch file CC.bat corrected.
V3.88g 31. Oct 2013 New embOS generic sources V3.88g.
V3.86e 14. Jun 2012 New embOS generic sources V3.86e.
V3.86c 08. May 2012 New embOS generic sources V3.86c.
V3.82w1 31. August 2011 Batch file CC_CPU.bat corrected.
V3.82w 12. August 2011 New sources version 3.82w.
Resource semaphore handling corrected.
V3.82f 30. April 2010 New sources version 3.82f.
OS_GetCPUState() corrected.
V3.82 24. September 2009 New sources version 3.82
Update to compiler version 3.40A
V3.32m 09. April 2007 New sources version 3.32m
Update to compiler version 3.21A
V3.32m1 09. April 2007 New sources version 3.32m
May be used with older IAR compiler V3.20A
V3.30b 18. May 2006 New sources version 3.30b, OS_Suspend() corrected
V3.28q 21. Feb 2006 New sources version 3.28q with additional functions and corrections
V3.28m 20. Nov 2005 New sources version 3.28l with additional functions and corrections
V3.28g 07. Jul 2005 Official release with new embOS sources 3.28
V3.28 - 3.28f Internal versions, not distributed
V3.24b 05. Jan 2005 Update for IAR compiler 3.10A / IDE 4.3A
V3.24 19. Nov 2004 Task switch bug fixed, corrected version
V3.20d 30. Jan 2004 Updated for new IAR compiler V2.12, New embOS sources V3.20d
V3.10r 02. Oct 2003 Updated for new IAR compiler V2.11, embOS tick handler corrected
V3.10p 03. Jun 2003 Updated for new IAR compiler V2.10
V3.10f 04. Sep 2002 New sources for modified embOSView format used
V3.08a 24. May 2002 Message Queues implemented
V3.06h 17. Apr 2002 Corrected version 3.06h
V3.06g 31. Dec 2001 Modified version 3.06g
V3.06e 20. Sep 2001 Corrected version 3.06e
V3.06 17. May 2001 First version with trace functions
V3.04 01. Feb 2001 First version with release history

Miscellaneous

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


Copyright 2001-2013 SEGGER Microcontroller GmbH & Co. KG. All rights reserved.
For more information, please visit our website www.segger.com or contact us at info@segger.com