DSP/BIOS 6.21.00.13 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.21.00.13 is a GA release of DSP/BIOS 6.21.

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

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

DSP/BIOS 6.21.00.13 GA 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.

Stop Mode RTA:  The RTA plugins will now update whenever the target is halted.  CCSv4.0.2 (or later) is required for this feature.

New Devices:  DSP/BIOS 6.21 adds support for the Stellaris Cortex-M3 devices.  A generated list of supported devices is now included in the product.  Check here.

Updated Target Support:  DSP/BIOS 6.21 now adds ELF object file format for all of the supported Arm targets.  COFF support for the Arm targets is being phased out and has been removed for most of the Arm targets.  COFF format for Cortex-M3 and Cortex-R4 is still supported in this release but will be removed in a future release.   Check this list for supported targets and the associated compiler versions.

Zero-latency interrupts for 28x:   The ti.sysbios.family.c28.Hwi module has a new configuration parameter -- zeroLatencyIERMask -- which allows users to select which interrupt lines (in IER register) will never be disabled by DSP/BIOS.   If this parameter is changed from the default (0x0), DSP/BIOS will use the IER register to disable/enable interrupts (without ever touching the specified bits) instead of the global INTM bit.

ELF Support:  Added support for ELF targets for assorted 6x and Arm devices.   The RTA and ROV tools now support ELF format.

Big-Endian Support:  The ROV and RTA tools have been updated to completely support big-endian devices.  There were a number of bugs related to big-endian that were fixed in this release.

Bug Fixes and Minor Enhancements:  See below for the full list of bug fixes and enhancements that are included in this release.

Important note for c28x:  ezdsp28335 users are recommended to use f28335dspbios.gel file supplied with CCSv4 to connect and load any BIOS example programs that require external memory. The enhancements are listed in the particular DSP/BIOS 6.x release in which they occurred:

DSP/BIOS 6.20

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.20:

Id                                Headline
SDOCM00062705    RTA stairstep example configure transport based on target
SDOCM00062642    ROV has problem for Hwi module in ELF mode (__STACK_SIZE problem?)
SDOCM00062634    genx: legacy example needs restrictions for elf only targets
SDOCM00062588    need clean "supported devices" table (subset of delgates table) that we can reference directly from release notes
SDOCM00062564    BIOS 6.x should not add any CCSv3 registry entries (or any other registry data except perhaps uninstall stuff)
SDOCM00062369    RTA documentation updates
SDOCM00061906    add ELF 672x support to BIOS 6.x and run regresstest regressions
SDOCM00061649    BIOS 6.20 unicache Cache module needs separate 'configureCache' config parameter for ducati Core 1
SDOCM00061598    BIOS User's Guide should include an appendix with tips for speed optimization (disable asserts, logs, etc.)
SDOCM00061439    ti.sysbios.heaps.HeapBuf: ROV views never populated
SDOCM00061308    Task error raise for E_stackOverflow should print out Task Handle if the Task does not have a name
SDOCM00061307    In ROV, when halted in current task, shows state is "ready", not "running"
SDOCM00060619    (Child) Incorrect interrupt masking in RTDX for RtdxModule used by DSP/BIOS 6.x (BIOS 5.x is OK)
SDOCM00060464    BIOS 6 dual M3 core timer module has incorrect time base for Timer 1.
SDOCM00060460    BIOS 6 unicache Cache module causes exceptions when used in a dual core environment.
SDOCM00060231    ROV Test: the duplication of address field in HeapBuf Module
SDOCM00060130    DSP/BIOS Cache settings and default MAR should be derived from the Platform cache settings
SDOCM00060129    ti.sysbios.family.c28.Timer- setPrescale doesn't work for values >= 256
SDOCM00060124    add FPU support to TMS570/R4 BIOS
SDOCM00060123    Add Luminary/Stellaris M3 support to DSP/BIOS
SDOCM00060120    ti.sysbios.family.c28.Timer:  'prescale' field in rov instance view incorrectly populated
SDOCM00059833    ROV - Use cof / elf reader for string lookup
SDOCM00059648    legacy genx example not supported for evmDa830 - dsp/elf
SDOCM00059258    Symbols for static BIOS5 instances are sometimes paired with incorrect addresses on 28x
SDOCM00059256    BIOS 5 & 6 RTA - Formatter can't read empty strings
SDOCM00058841    BIOS 6 Need additional Timer_start/stop use case CDOC
SDOCM00058839    BIOS 6 Do conversion of Timer period in microseconds to period in counts the static world to avoid 64 bit math library
SDOCM00058812    add big endian ELF support to BIOS 6.x (we already have COFF big endian in 6.20.01)
SDOCM00058810    BIOS 6: ELF Mode enumerations aren't displayed properly in ROV views
SDOCM00058776    need to add support for TCI6485 and TCI6489 to BIOS 6.20 in July timeframe
SDOCM00058740    ti.sysbios.family.c28.Hwi: 28FP doesn't support zero latency
SDOCM00058619    GateSwi and GateTask should assert that enter/leave called from correct context
SDOCM00058204    (Child) add TCI6488 and 6472 support to ti.sysbios.family.c64p and timer packages.
SDOCM00058146    BIOS 6 RTA is not working for big endian 64x+
SDOCM00057394    BIOS 6 hal timer ROV basic view is broken with ti.targets.arm.elf.M3 target
SDOCM00056651    Invalid example on On page 133 (section 6.2.8) of BIOS 6 User's guide
SDOCM00055266    update BIOS6 UG to use List or remove @nodoc from Queue (forum post)
SDOCM00052443    change BIOS 6.x 'TSK.SWITCHFXN' and 'TSK.CALLSWITCHFXN' to be "unsupported" for legacy BIOS5 support
SDOCM00052251    update RTA to support ELF -- use new COF-like module in gen tree (separate work item)
SDOCM00051912    RTA - Support stop-mode collection of data
SDOCM00050881    BIOS 6 Clock Module should generate an error for oneshot timeouts and periodic periods set to zero.
SDOCM00046301    Cdoc for Timer.xdc needs to inform users that our timers may not map one to one

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

Click here  for the list of supported devices.
 
back to top

Validation Information

This release was built and validated using the following components:

back to top

Known Issues

The following issues are known to affect this release:

ID                               Headline
SDOCM00062904    BIOS 6 GateMutexPri ROV Basic View is Broken
SDOCM00062873    RTA Agent does not support applications containing other ILoggers
SDOCM00062828    HeapBuf ROV view for 28x has problems with maxAllocatedBlocks (16-bit vs 32-bit 0xffff/0xffffffff)
SDOCM00062135    EventCombiner and CpIntc need ROV
SDOCM00060184    Hwi modules should document amount of stack space needed for context save
SDOCM00060116    Fix frequent 28x compiler warning when using "ti/sysbios/interfaces/ICache.h"
SDOCM00060068    eventId field in ROV view for dynamically created instances of ti.sysbios.family.c64p.Hwi not properly populated
SDOCM00059621    ROV - Null pointer exception with multicore device
SDOCM00058929    ROV - java.lang.NullPointerException due to incompatible plugin and tools
SDOCM00058217    Ubuntu Linux should be supported by DSP/BIOS
SDOCM00058215    Linux installer inserts a bogus DSP/BIOS item on Applications Menu after installation
SDOCM00058086    BIOS 6 RTA - Disable log failed on XDS510USB
SDOCM00057922    ROV - Can't decode structures with 2D arrays
SDOCM00057398    remove arm/tms470 support and subdirectories from the ti.rtdx.* packages
SDOCM00056776    Win32: Build error ole32.lib while building test suite
SDOCM00056734    BIOS 6 RTA - Emulation crash on USB when program loaded a second time over network
SDOCM00056466    Hwi dispatcher should be reworked to remove instructions for registers that aren't applicable to Tesla
SDOCM00056463    Exception handler should be improved to handle recoverable exceptions
SDOCM00055244    ROV: ROV does not tell about failure in creation of modules whether error block is used or not used inside creation function.
SDOCM00055126    ROV: GatemutexPri value of ROV GUI does not update some fields when a task enters into gate
SDOCM00055000    ROV and RTA recap files have hard coded path, results into error on plugin open if files are moved out of original location
SDOCM00054966    CCSv4 Help Contents for RTA does not contains information about most of the fields
SDOCM00054830    Placing .vecs using legacy config method doesn't override defaults in platform
SDOCM00053669    genx throws error if platform used has ":" in name.
SDOCM00050899    ti.sysbios.family.c64p.Cache: No equivalent API to perform Global Coherence Operations on L1  and L2  Cache(API request)
SDOCM00046011    log printf strings for multiple coff files

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, alpha/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: October 16, 2009 Build Ver: 6.21.00.13 Rev: e13