DSP/BIOS 6.05.00.09 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.05.00.09 is a Point Release of DSP/BIOS based on BIOS 6.00.

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

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.05.00.09 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.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 parts 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:

SDSCM00017981    CDOC should give syntax to set CPU frequency as in the BIOS.xs file
SDSCM00018948    Legacy BIOS headers (e.g. que.h and tsk.h) are noisy with -pdr
SDSCM00019061    Enhancement to error and swi example
SDSCM00019393    For implementation efficiency the number of Swi and Task priorities should be based on the size, in bits, of a UInt
SDSCM00019442    CCS needs BIOS 6.xx select in Component Manager.
SDSCM00019446    Add -D option ti.bios.conversion tool
SDSCM00019546    Clock functions run out of order when Clock Swi gets delayed
SDSCM00019651    Conversion needs to translate some BIOS functions to prevent conflicting signatures
SDSCM00020197    remove eint0Mask and eint1Mask config params from dm6446/Hwi module
SDSCM00020268    ti.sysbios.benchmarks package needs review and cleanup
SDSCM00020329    Exceptions need to be enabled by default for BIOS 6
SDSCM00020480    Change Mailbox Event Object and ID names to make their use clearer
SDSCM00020503    Need to support Codegen 4.5 for ARM
SDSCM00020535    Create app note describing how to migrate from BIOS 5.0 to BIOS 6.0
SDSCM00020666    The legacy conversion tool should take care of finding tci files included using -D option
SDSCM00020667    The legacy conversion tool should generate correct header file
SDSCM00021017    Task_checkStacks should be enabled via config parameter and called directly (not via Hook)
SDSCM00021273    BIOS 6 legacy function TSK_isTSK() returns true if called from within main()
SDSCM00021280    BCACHE_getSize()  doesn't set the cache values in the structure it returns
SDSCM00021600    Mailbox_destruct fails to tear down a statically allocated instance
SDSCM00021701    Deleting a task in Task_Mode_READY state doesn't remove it from the ready list
SDSCM00021748    remove SWI_getattrs, SWI_setattrs, SWI_orhook, SWI-getpri  from BIOS6 legacy deprecated  list
SDSCM00021887    Cache should be enabled by default for C67P
SDSCM00021938    HeapBuf and HeapMultiBuf should use Assert instead of Errors for coding errors
SDSCM00022326    HeapBuf create should not assign align to getMaxDefaultTypeAlign if not zero
SDSCM00022437    Timestamp_get64() for 64x+ family should disable interrupts around TSCL/H register read
SDSCM00022440    C67P Timer module should re-enable timer interrupt before calling tick fxn. 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.

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.

The RTDX libraries are now provided separately from DSP/BIOS. You can download the RTDX product from:

https://www-a.ti.com/downloads/sds_support/targetcontent/rtdx/index.html

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 Appendix A: Converting DSP/BIOS 5.x Applications in the DSP/BIOS User’s Guide. Also see the Migrating a DSP/BIOS 5 Application to DSP/BIOS 6 document.

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 Appendix A referenced above.

back to top

Host Support

back to top

Dependencies

back to top

Device Support

This release supports the following devices:

  Device Platform Runtime Model
64x 6416 dsk6416 Little Endian
  DM642 evmDM642 Little Endian
64x+ DM6446 evmDM6446 Little Endian
  6455 evm6455 Little Endian
67x+ 6727 padk6727 Little Endian
ARM DM6446 evmDM6446 Little Endian
DM510app510Little Endian (32 bit and thumb)
PC Windows win32 Visual Studio 8.0

 
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:

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

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, ex. bios_6_00.

Subsequent releases of patch upgrades will be identified by the patch number, ex. BIOS 6.00.01 with directory bios_6_00_01. 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: Dec 20, 2007 Rev: b09