DSP/BIOS 6.20.02.43 is a release of DSP/BIOS 6.20.
DSP/ BIOS is a real-time operating system that provides
pre-emptive deterministicmultithreading. 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.02.43.
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.
Maintenance release - Bug fixes, see list below.
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:
SDOCM00061541 - add TCI6488 and 6472 support to ti.sysbios.family.c64p and timer packages SDOCM00061539 - update Arm to 4.6.0B1 and 6x/ELF and 6x/Tesla/COFF to 7.0.0B1 SDOCM00061537 - Incorrect interrupt masking in HSRTDX for RtdxModule used by DSP/BIOS 6.x
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.
The following issues are known to affect this release:
SDOCM00058929 ROV - java.lang.NullPointerException due to incompatible plugin and tools SDOCM00058843
BIOS 6 ROV views of legacy SWIs on 28x targets all show SWI_stub for
the FXN and bogus ARG values 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 SDOCM00058820 BIOS 6 hal_Hwi_HwiProxy_enable/disable/restore may not appear in partially linked obj file 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 SDOCM00058217 Ubuntu Linux should be supported by DSP/BIOS SDOCM00058215 Linux installer inserts a bogus DSP/BIOS item on Applications Menu after installation SDOCM00058204 add TCI6488 and 6472 support to ti.sysbios.family.c64p and timer packages. SDOCM00058146 BIOS 6 RTA is not working for big endian 64x+ 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. SDOCM00052443
change BIOS 6.x 'TSK.SWITCHFXN' and 'TSK.CALLSWITCHFXN' to be
"unsupported" for legacy BIOS5 support 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
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.