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