DSP/BIOS 6.10 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.10 is a Major Release of DSP/BIOS based on BIOS 6.05.

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

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

SDSCM00028065    can't build stairstep example for Arm9 target
SDSCM00027611    change genx/rta example to use stairstep with multiple tasks to provide better load values and exec graph
SDSCM00027471    CDOC: DETAILS section  of few API are missing
SDSCM00027035    Timer internal frequency setting not modifiable during config time.
SDSCM00026903    switch to ISR stack not safe under all configuration constant-folding conditions
SDSCM00026710    Using mixture of legacy configuration and new 6.0 causes unknown results
SDSCM00026624    BIOS 6 generated C6x vector table has bogus reset vector entry
SDSCM00026595    ti.sysbios.family.c64P.Cache module should check platform cache setting to ensure consistent cache setup in config
SDSCM00026594    L1D and L1P default sizes get overwritten when using the legacy ti.bios.tconf package to set L2 cache
SDSCM00026345    Cache Module needs to validate there is no cache/memory overlap
SDSCM00026313    Problem with creating timer64/Timer in chained mode at runtime.
SDSCM00026286    Auto Generate an html page that summarizes the delegates used by hal.Timer/Hwi/Cache for all supported targets/devices
SDSCM00026223    BIOS 6 remarks when using -pdr
SDSCM00025897    Add option to genx to build just one example
SDSCM00025710    BIOS legacy app note - enhancement list
SDSCM00025613    BIOS 6 User's Guide -- Remove BIOS 5 Migration Appendix, move its content to legacy app note
SDSCM00025606    BIOS 6 User's Guide: Add Hwi Configuration and Management chapter
SDSCM00025604    Update Chapter One of BIOS 6 User's Guide
SDSCM00025159    BCACHE_wbInv() should not be a static inline.
SDSCM00024960    LOG.TS param is missing in BIOS6 compatibility layer
SDSCM00024825    TSK_disable/enable wrapper APIs for BIOS6 do not support nesting like native BIOS5 APIs do
SDSCM00024764    Posted Swi never runs
SDSCM00024628    .sysmem and .taskStackSection are placed in incorrect memory segment
SDSCM00024306    Embedded event objects are not synced to the Semaphore value in statically created Semaphores.
SDSCM00024290    Timer_getStatus API returns incorrect status
SDSCM00024224    warning: creating ".args" section with minimum size of 0x8; use the -args option to change the section size
SDSCM00024123    genx makefile improvements and refinements
SDSCM00024012    Legacy conversion issues
SDSCM00023956    utils.loadPlatform is not converted to xdc.loadPackage if present in a tci file
SDSCM00023862    <Legacy> Function signature incompatible for SWI fxn
SDSCM00023812    Semaphore_construct() does not always initialize event fields causing runtime failure
SDSCM00023776    BIOS: HeapMultibuf create calls dont seem to clean-up correctly if their first call to memory_alloc fails
SDSCM00023687    ti.bios.tconf package doesn't import EventCombiner and Cache module
SDSCM00023685    KNL_dummy is not defined in legacy interface
SDSCM00023642    Problem with dynamically creating a Mailbox by passing in static buffer
SDSCM00023640    legacy BIOS MEM module overwrites Program.sectMap[] settings
SDSCM00023611    Mailbox and HeapMultibuf create calls dont seem to clean-up correctly if their first call to memory_alloc fails
SDSCM00023068    minor inconsistencies between User's Guide appendix and benchmark tables
SDSCM00023010    Resolve Event module functional requirements
SDSCM00022820    BIOS module CDOC description needs to explain the start up sequence
SDSCM00022518    Rules for using family specific Hwi modules are unclear.
SDSCM00022457    DSP/BIOS 6 User's Guide section A.5 should list all unsupported legacy APIs (like PIP)
SDSCM00022453    DSP/BIOS 6.05 User Guide Appendix A contains misleading information
SDSCM00022406    Semaphore_pend(), Event_pend(), and Task_sleep() have large latencies
SDSCM00022396    Improve latency benchmark
SDSCM00020196    redesign timer64 in arm9/dm6446 to be re-usable by other targets/devices
SDSCM00019069    Null pointer dereference in Task_getPri() when called before main()
SDSCM00018930    BIOS 6.x User's Guide needs section describing Load module
SDSCM00018273    BIOS 6 should standardize on the name of the section the interrupt vectors are placed in
SDSCM00016402    Core Kernel Add Supported Devices/Types to xdoc/cdoc
SDSCM00016393    ARM Support Thumb Mode
SDSCM00015989    ti.sysbios needs to support generation of reset vector in an address independent of vector table
SDSCM00003653    CLK Mgr - Users should be allowed to config BIOS Timer TOUT/GPIO/SRC
SDSCM00003625    Provide debug version of BIOS libraries (enhancement).
SDSCM00003623    instrumentation not available for dynamically created TSKs and SWIs
SDSCM00003605    Instrument HWI dispatcher allowing the user to optionally log HWI events

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

This release supports the following devices:a0868361

  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:

SDSCM00027708    evmDM6446 - ARM9t:Device name is passed as null to the underlying driver create function when called from Stream_create
SDSCM00027582    ROV GUI : Refresh issue
SDSCM00027570    Cannot give names to static instances when using da830 rom.
SDSCM00027337    Timer module ROV view shows incorrect value for period
SDSCM00027329    On PrimusROM - few test cases will not print text on output window
SDSCM00026970    GateMutexPri fails to raise assert when called from Swi
SDSCM00026969    GateMutex fails to raise assert when called from Swi
SDSCM00026968    Timer_start fails to call new timer Function set by Timer_setFunc() API
SDSCM00026698    Enabling Disabling different Caches should be possible in config world
SDSCM00026384    Cdoc for Timer.xdc needs to inform users that our timers may not map one to one
SDSCM00026370    genx needs to support CCS4
SDSCM00026095    create/complete ROV view for modules in package ti.sysbios.hal
SDSCM00026094    create/complete ROV view for modules in package ti.sysbios.family
SDSCM00026007    add Log (and Assert?) statements at key points in Stream and DriverTable, etc.
SDSCM00025688    DSP/BIOS documentation does not list which system calls are deterministic
SDSCM00025611    BIOS 6 Users Guide: Provide Debug and Analysis Chapter
SDSCM00025609    BIOS 6 Users Guide: Add Configuration Chapter
SDSCM00025466    BIOS 6 Task_delete() has restrictions that BIOS 5 TSK_delete() doesn't
SDSCM00025048    For Inactive task, "Corrupted Data" text appears on hovering "Priority" column in ROV GUI
SDSCM00025047    CCS 4.0 ROV GUI: Task creation failure for badPriority requires better representation
SDSCM00024959    Add section on conversion of legacy pjts that have both cfg and tcf. (dvsdk apps)
SDSCM00022289    Re-enable Assert in GateMutex.c file
SDSCM00021854    BIOS needs to support ARM9's MMU
SDSCM00022297    Arm9 Cache writeback, invalidate and wbinv APIs are not reliable -- can cause system hang
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: September 10, 2008 Build Ver: 6.10.00.30 Rev: c31