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