DSP/BIOS 6.20.00.37 GA Release Notes

This release note is divided into the following sections:

Introduction, Documentation, What's New, Upgrading And Compatibility Information, Host Support, Dependencies, Device Support, Validation Information, Known Issues, Benchmarks, Versioning, Technical Support And Product Updates,


Introduction

DSP/BIOS 6.20.00.37 is the production (GA) release of DSP/BIOS 6.20.

DSP/ BIOS is a real-time operating system that provides pre-emptive deterministic multithreading. The DSP/BIOS 6.x releases introduce a completely new DSP/BIOS kernel and toolset. The DSP/BIOS 6.x releases include numerous major enhancements, including completely new kernel APIs. They also include compatibility layers and tooling to facilitate easy porting of applications developed on DSP/BIOS 5.x releases.

A number of tools and libraries that were provided as an integrated part of DSP/BIOS 5.x releases must now be downloaded separately to obtain a functional solution. It is essential for even experienced DSP/BIOS users to refer to the Getting Started Guide and to the Upgrading and Compatibility Information section for further details.

Please read the Getting Started Guide for help installing and setting up your environment to use DSP/BIOS 6.20.00.37.

back to top

Documentation

The following documentation is provided with this release:

Release notes from previous releases are also available in the release notes archive directory.

back to top

What's New

6.20.00.37 Release (this release).

The following major enhancements have been introduced when compared to DSP/BIOS 5.32 or earlier releases.  For a more detailed explanation of each enhancement, please refer to the TMS320 DSP/BIOS 6 User’s and API Reference Guides, except when the XDC Consumer User’s Guide is listed as the reference.

The enhancements are listed in the particular DSP/BIOS 6.x release in which they occurred:

DSP/BIOS 6.20.00.37

New Devices:  DSP/BIOS 6.20 adds support for the C28x family of devices.  A number of other devices have been added for devices that have been released since 6.10.  Check the on-line documentation for the 'ti.sysbios.family' package to see a full list of supported devices.

New Compiler Models:
 Added support for 674x and 64x+ ELF compiler/linker using compiler pre-release (v7.0.0A).  Added support for Arm9 and Cortex-M3 model using compiler pre-release (v4.6.0A).

Runtime Object View (ROV) Real Time Analysis (RTA):
 Many improvements in usability and stability since 6.10.

Graphical Configuration (xgconf):
The RTSC graphical configuration tool can be used to view and update a DSP/BIOS configuration. The version of this tool provided with XDCtools 3.15 is much improved over the alpha version provided with XDCtools 3.10.

Project Wizard: CCSv4 project wizard has been enhanced to build RTSC configuration projects and sample projects.  This wizard enables you to easily rebuild examples for different platforms.  The Getting Started Guide has links to some videos that show how this works.

Documentation:  All documents have been updated with new sections and bug fixes.  The DSP/BIOS 5.x Migration document has been updated to correspond to the CCSv4 beta5 build flow.

Bug Fixes and Minor Enhancements: See the list below for abbreviated list of bug fixes and enhancements.

DSP/BIOS 6.10

New Device Support:  DSP/BIOS 6.10 adds support for 674x, Cortex M3, and Arm9 Thumb mode devices.  See the device table for full list of supported devices.

Runtime Object View (ROV):
All of the DSP/BIOS modules now contain support for the CCSv4 ROV plugin.  The ROV plugin is a smart memory window that provides nicely formatted state data for the assorted DSP/BIOS modules and objects.

Real Time Analysis (RTA):
DSP/BIOS 6.10 contains a new ti.sysbios.rta package which is used to communicate with and send Log data to CCSv4 analysis plugins.  This first release only supports RTDX as the transport, but the architecture is very open and will support other transports (like UART or TCP/IP) in the future.  CCSv4 is currently an early adopter product -- changes and improvements willl be made to the RTA plugins before the CCSv4 beta and final releases.

Graphical Configuration (xgconf):
The RTSC graphical configuration tool can be used to view and update a DSP/BIOS configuration. A alpha release of xgconf is provided with XDC tools release.

I/O Support: The Stream module and IDriver interface have been added.  See the I/O chapter in the DSP/BIOS User's Guide for additonal information.

DSP/BIOS 5 legacy improvements: The conversion tool which translates DSP/BIOS .tcf scripts to .cfg scripts has new -i option to convert and inline content from .tci files.  See the updated application note for more information.

ROM support for DA830: DSP/BIOS is included in the on-chip ROM for the DA830 device.  See the ROM user's guide for more information on how to use DSP/BIOS in the DA830 ROM.

Updated Documentation: The DSP/BIOS User's Guide has been updated with several new sections.  The Getting Started Guide now has instructions showing how to use DSP/BIOS with CCSv4. The legacy app note contains a lot of additional details.

Redesign of Event module and support of events in Semaphore:  Several changes were made to improve usability and performance. Support for multiple tasks per Event Instance was removed. When using events Mailbox can only a single reader and writer. Semaphore will support registration of events. (See SDSCM00023010 for details).

DSP/BIOS 6.05

Improved Benchmarks:  Benchmarks are now provided for the supported targets.  These are provided in the ti.sysbios.benchmarks package.  The benchmarks are described in an appendix to the DSP/BIOS User's Guide.  Results are provided with the product.  See Benchmarks.
 
Improved BIOS 5.x Legacy Support:  A number of legacy APIs have been fixed or improved.  The ti.bios.conversion tool has had some improvements.  A new app note Document "Migrating a DSP/BIOS 5 Application to DSP/BIOS 6" is now provided.
 
Arm Thumb Mode Support:  Thumb mode libraries are now provided for the Arm9 target.
 
Bug Fixes and Maintenance:  A number of bugs and minor enhancements are included including support for some new devices (e.g., DM510).

DSP/BIOS 6.00

Event Module: The Event module enables a task to wait on multiple events. The Event module supports up to 32 events (16 for devices with 16-bit integers), which can be any AND or OR combination of custom user-defined events, I/O events, or a semaphore, message queue, or mailbox post.

Priority-Inheritance Gate:
Priority-inheritance gates automatically resolve priority-inversion, making it safer to share resources between high-priority and low-priority tasks.

Memory Manager:
DSP/BIOS utilizes the memory manager that comes with the XDC run-time. This memory manager allows for the concept of multiple, concurrent heaps and enables users to easily add their own custom heaps for performance or debug purposes. See the XDC Consumer User’s Guide, section 4.5 for further details.  DSP/BIOS provides three heap implementations that may be used with this manager: HeapMem and HeapBuf, which correspond to the MEM and BUF modules from earlier DSP/BIOS releases and HeapMultiBuf, which provides a faster, more deterministic multiple-pool based-heap whose performance does not degrade with fragmentation.

HWI and SWI Hooks:
There are now hook functions available for both hardware interrupts (HWIs) and software interrupts (SWIs) as well as tasks. If these hooks are not selected during configuration, there is not additional overhead incurred.

Greater Number of Priority Levels:
The number of priority levels for both tasks and software interrupts is now configurable and has been increased to up to 32 levels for each (16 for devices with 16-bit integers).

Dynamic and static creation for all objects:
All objects may now be created both dynamically and statically

Support for ARM926 core:
DSP/BIOS now includes libraries for some ARM926-based devices. Both Thumb and 32-bit mode libraries are provided.

DSP/BIOS APIs have standardized error handling:
All DSP/BIOS system calls that can fail, such as object creation calls, now have a standardized way of returning errors using the XDC error module. This error-block-based approach has significant advantages compared to using return codes, including having all errors pass through a single point and ensuring that an error handler can be called without having to explicitly check a return code. See the XDC Consumer User’s Guide for further details.

DSP/BIOS APIs have parameter checking:
DSP/BIOS APIs can now be configured to have built-in debug asserts that are raised, for example, if an invalid task priority level is passed as a parameter. For further information on the behavior of Asserts, See the XDC Consumer User’s Guide for further details.

DSP/BIOS functions are placed in individual subsections:
Each DSP/BIOS function is now placed in a subsection named .text:<DSP/BIOS API Name>. This makes it simple to locate different parts of DSP/BIOS in different areas of memory.

BIOS Emulation library for Windows:
The DSP/BIOS emulation library for Windows enables DSP/BIOS systems calls and multithreading behavior to be used in a Windows application. This capability allows much more comprehensive prototyping of DSP applications in a Windows desktop environment, in which developers can use software debug and test tools not available for an embedded target.

Defects Fixed since DSP/BIOS 6.10:

ID                               Headline
SDOCM00045980    DSP/BIOS 6.x needs to log IRP pointer
SDOCM00045981    ROV & RTA displays TSK_staticGlue as its function when a legacy TSK is created
SDOCM00045983    Legacy MEM should make a better choice for SEG0 instead of choosing last created HeapMem.
SDOCM00045985    RTA - Task Load graph displays Task address only when Agent disables SystemLog
SDOCM00045998    ROV should recover after loading program w/o recap file.  Load of new program w/ recap should work
SDOCM00046000    ROV -- $type error for HeapBuf display for ipc/tests/MailboxTest1.c (change 9 to 8)
SDOCM00046001    HeapBuf (and Mailbox and MultiBuf) problems if bufsize is not a multiple of word alignment
SDOCM00046003    BIOS :  Generated driverTemplate C code  has typo in some comments
SDOCM00046413    Develop and Support M3 Target in BIOS 6
SDOCM00047361    KOV blocked on field is blank for some tasks
SDOCM00047773    APIs to find out the number of pending (and free) messages in a mailbox
SDOCM00051686    BIOS 6 Calling Task_setPri(Task_self(), -1) does not result in current task being blocked as it should
SDOCM00051850    genx top level makefile incorrect when creating examples in directory with spaces in path
SDOCM00053791    Stream: Stream_read/write API raises A_badMode assert
SDOCM00053823    Stream: Stream_reclaim API raises error message "E_timeout" for any TIMEOUT value (>1 ticks)
SDOCM00054156    Stream: sync (Semaphore, Swi, Event) values are not getting posted from stream module
SDOCM00054581    Error_raise in drivers gives problems in subsequent Stream calls
SDOCM00055027    Task module needs configuration parameter for segment placement of the Idle stack
SDOCM00055050    task idle function stack size and placement cannot be performed via legacy config interface
SDOCM00055053    TSK module stack size setting in legacy do not set the Task.defaultStackSize parameter
SDOCM00055637    update BIOS6 to not lock/unlock KICK register in timer init code -- BIOS should not touch KICK registers
SDOCM00056309    hide the "Core_deleteObject" function in the DA830 ROM image -- it frees memory before remove from list
SDOCM00057271    BIOS 6 Swi_andn() and Swi_dec() can return with interrupts disabled
back to top

Upgrading and Compatibility Information

DSP/BIOS 6.x releases have many significant changes from DSP/BIOS 5.x.  It is important to understand the information below in order to successfully use DSP/BIOS 6.x and to migrate applications from DSP/BIOS 5.x.

DA830 ROM

BIOS 6.20 is 100% compatible with the DA830 ROM.  A couple minor bug fixes to code in the ROM are worked around with jump-table patches in the ROM.  This jump table patching is handled by the updated 'ti.sysbios.rom.da830' ROM package.  No changes to the application are necessary other than rebuild with new packages.

The 'ti.sdo.io' and 'ti.sdo.utils' packages are no longer provided with DSP/BIOS

These packages are now provided in a separate "IPC" product.  Users of these packages simply need to add this other product directory to their package path (XDCPATH) to build their applications.

DSP/BIOS no longer contains all the tools and objects you will need

The XDC tools now provide the DSP/BIOS configuration tools and Platform support. XDC also includes a minimal run-time environment that provides the LOG, System, Asserts, Error handling, Timestamp, and Memory Allocation APIs that will be used by DSP/BIOS applications.  Please refer to the Getting Started Guide on where to download the XDC tools and run-time.

Migrating DSP/BIOS 5.x applications to DSP/BIOS 6.x

DSP/BIOS 6.x has different APIs compared to those in DSP/BIOS 5.x. Configuration scripts are also incompatible between the two releases.  To provide easy migration of DSP/BIOS 5.x applications, an API compatibility layer is provided along with a conversion tool that converts configuration scripts to work with XDC and DSP/BIOS 6.x.  The API compatibility layer provides 100% C source code compatibility with the exception of a few APIs that are no longer supported.  For more complete details of migrating DSP/BIOS 5.x applications and configuration scripts, please refer to Migrating a DSP/BIOS 5 Application to DSP/BIOS 6.

As mentioned above, some APIs previously supported in DSP/BIOS 5.x releases will no longer be supported in this release or the compatibility layer.  Complete details are provided in the Migration document referenced above.

back to top

Host Support

back to top

Dependencies

back to top

Device Support

Check the on-line documentation (cdoc) for the 'ti.sysbios.family' package to see a full list of supported devices.
 
back to top

Validation Information

This release was built using the following components:

This release was validated using the following components:

back to top

Known Issues

The following issues are known to affect this release:

ID                              Headline
SDOCM00046011    log printf strings won't work for multiple COFF files
SDOCM00046132    Sempahore (used by mailbox internally) ROV view data disappears on refresh
SDOCM00046134    Cannot give names to static instances when using da830 rom.
SDOCM00046248    GateMutex fails to raise assert when called from Swi
SDOCM00046328    create/complete ROV view for modules in package ti.sysbios.hal
SDOCM00046329    create/complete ROV view for modules in package ti.sysbios.family
SDOCM00046393    BIOS 6 Task_delete() has restrictions that BIOS 5 TSK_delete() doesn't
SDOCM00046756    BIOS6 doesn't have MPC module
SDOCM00047708    BIOS wont work in C++ program with exceptions
SDOCM00049760    data view in ROV should keep fields expanded between data elem displays after "expand all" button is clicked
SDOCM00050064    RTA: RTA values does not get update when Run->Halt->Restart->run command in CCSv4 is being run
SDOCM00050067    RTA: RTA does not get updated when breakpoint is set after run->halt step is done in CCSv4 project
SDOCM00050100    ROV and RTA are not in Sync upon CPU halt
SDOCM00050329    ROV: Basic and Raw sections of ROV GUI are not in sync
SDOCM00050611    ti.sysbios.ipc.Mailbox Module does not support logging
SDOCM00050876    #include ordering shouldn't matter for files that include both legacy and BIOS6 headers
SDOCM00051318    ROV view needed for system stack usage
SDOCM00051912    RTA - Support stop-mode collection of data
SDOCM00052251    update RTA to support ELF -- use new COF-like module in gen tree (separate work item)
SDOCM00052443    change BIOS 6.x 'TSK.SWITCHFXN' and 'TSK.CALLSWITCHFXN' to be "unsupported" for legacy BIOS5 support
SDOCM00053303    BIOS 6 Verify Correct Arm RTA operation
SDOCM00055000    ROV and RTA recap files have hard coded path, results into error on plugin open if files are moved out of original location
SDOCM00055997    HS RTDX Blue screen crash on reload
SDOCM00056799    DM6446 DSP: legacy example does not gives any output for BIOS
SDOCM00056939    ROV - Improve LoggerBuf Records view performance
SDOCM00057316    ti.sysbios.family package documentation is missing links for 28x and M3 targets

back to top

Benchmarks

    For a full description of Benchmarks please see the appendices in the DSP/BIOS 6 User's Guide. back to top

Versioning

All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA, beta, etc.). Pre-releases are denoted with a suffix (e.g. 6.20.00.15-eng or 6.20.00.21-beta).

This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory (e.g. bios_6_20_00_37).

Subsequent releases of patch upgrades will be identified by the patch number, ex. DSP/BIOS 6.20.01.41 with directory bios_6_20_01_41. Typically, these patches only include critical bug fixes.

Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.

back to top

Technical Support and Product Updates

back to top

Last updated: April 30, 2009 Build Ver: 6.20.00.37 Rev: d37