DSP/BIOS 6.20.00.37 is the production (GA) 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.00.37.
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.20.00.37
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.10:
ID
Headline SDOCM00045980 DSP/BIOS 6.x needs to log IRP pointer SDOCM00045981 ROV & RTA displays TSK_staticGlue as its function when a legacy TSK is created SDOCM00045983 Legacy MEM should make a better choice for SEG0 instead of choosing last created HeapMem. SDOCM00045985 RTA - Task Load graph displays Task address only when Agent disables SystemLog SDOCM00045998
ROV should recover after loading program w/o recap file. Load of
new program w/ recap should work SDOCM00046000 ROV -- $type error for HeapBuf display for ipc/tests/MailboxTest1.c (change 9 to 8) SDOCM00046001 HeapBuf (and Mailbox and MultiBuf) problems if bufsize is not a multiple of word alignment SDOCM00046003 BIOS : Generated driverTemplate C code has typo in some comments SDOCM00046413 Develop and Support M3 Target in BIOS 6 SDOCM00047361 KOV blocked on field is blank for some tasks SDOCM00047773 APIs to find out the number of pending (and free) messages in a mailbox SDOCM00051686
BIOS 6 Calling Task_setPri(Task_self(), -1) does not result in current
task being blocked as it should SDOCM00051850 genx top level makefile incorrect when creating examples in directory with spaces in path SDOCM00053791 Stream: Stream_read/write API raises A_badMode assert SDOCM00053823 Stream: Stream_reclaim API raises error message "E_timeout" for any TIMEOUT value (>1 ticks) SDOCM00054156 Stream: sync (Semaphore, Swi, Event) values are not getting posted from stream module SDOCM00054581 Error_raise in drivers gives problems in subsequent Stream calls SDOCM00055027 Task module needs configuration parameter for segment placement of the Idle stack SDOCM00055050 task idle function stack size and placement cannot be performed via legacy config interface SDOCM00055053 TSK module stack size setting in legacy do not set the Task.defaultStackSize parameter SDOCM00055637
update BIOS6 to not lock/unlock KICK register in timer init code --
BIOS should not touch KICK registers SDOCM00056309
hide the "Core_deleteObject" function in the DA830 ROM image -- it
frees memory before remove from list SDOCM00057271 BIOS 6 Swi_andn() and Swi_dec() can return with interrupts disabled
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 SDOCM00046011 log printf strings won't work for multiple COFF files SDOCM00046132 Sempahore (used by mailbox internally) ROV view data disappears on refresh SDOCM00046134 Cannot give names to static instances when using da830 rom. SDOCM00046248 GateMutex fails to raise assert when called from Swi SDOCM00046328 create/complete ROV view for modules in package ti.sysbios.hal SDOCM00046329 create/complete ROV view for modules in package ti.sysbios.family SDOCM00046393 BIOS 6 Task_delete() has restrictions that BIOS 5 TSK_delete() doesn't SDOCM00046756 BIOS6 doesn't have MPC module SDOCM00047708 BIOS wont work in C++ program with exceptions SDOCM00049760
data view in ROV should keep fields expanded between data elem displays
after "expand all" button is clicked SDOCM00050064
RTA: RTA values does not get update when
Run->Halt->Restart->run command in CCSv4 is being run SDOCM00050067
RTA: RTA does not get updated when breakpoint is set after run->halt
step is done in CCSv4 project SDOCM00050100 ROV and RTA are not in Sync upon CPU halt SDOCM00050329 ROV: Basic and Raw sections of ROV GUI are not in sync SDOCM00050611 ti.sysbios.ipc.Mailbox Module does not support logging SDOCM00050876 #include ordering shouldn't matter for files that include both legacy and BIOS6 headers SDOCM00051318 ROV view needed for system stack usage SDOCM00051912 RTA - Support stop-mode collection of data SDOCM00052251 update RTA to support ELF -- use new COF-like module in gen tree (separate work item) SDOCM00052443
change BIOS 6.x 'TSK.SWITCHFXN' and 'TSK.CALLSWITCHFXN' to be
"unsupported" for legacy BIOS5 support SDOCM00053303 BIOS 6 Verify Correct Arm RTA operation SDOCM00055000
ROV and RTA recap files have hard coded path, results into error on
plugin open if files are moved out of original location SDOCM00055997 HS RTDX Blue screen crash on reload SDOCM00056799 DM6446 DSP: legacy example does not gives any output for BIOS SDOCM00056939 ROV - Improve LoggerBuf Records view performance SDOCM00057316 ti.sysbios.family package documentation is missing links for 28x and M3 targets
All
releases have 4 digits (M.mm.pp.bb). This includes GA and
pre-releases (engineering, 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.