DSP/BIOS 6.05.00.09 is a Point Release of DSP/BIOS based on BIOS 6.00.
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.05.00.09.
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.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:
SDSCM00017981 CDOC should give syntax to set CPU frequency as in the BIOS.xs file SDSCM00018948 Legacy BIOS headers (e.g. que.h and tsk.h) are noisy with -pdr SDSCM00019061 Enhancement to error and swi example SDSCM00019393
For implementation efficiency the number of Swi and Task priorities
should be based on the size, in bits, of a UInt SDSCM00019442 CCS needs BIOS 6.xx select in Component Manager. SDSCM00019446 Add -D option ti.bios.conversion tool SDSCM00019546 Clock functions run out of order when Clock Swi gets delayed SDSCM00019651 Conversion needs to translate some BIOS functions to prevent conflicting signatures SDSCM00020197 remove eint0Mask and eint1Mask config params from dm6446/Hwi module SDSCM00020268 ti.sysbios.benchmarks package needs review and cleanup SDSCM00020329 Exceptions need to be enabled by default for BIOS 6 SDSCM00020480 Change Mailbox Event Object and ID names to make their use clearer SDSCM00020503 Need to support Codegen 4.5 for ARM SDSCM00020535 Create app note describing how to migrate from BIOS 5.0 to BIOS 6.0 SDSCM00020666 The legacy conversion tool should take care of finding tci files included using -D option SDSCM00020667 The legacy conversion tool should generate correct header file SDSCM00021017 Task_checkStacks should be enabled via config parameter and called directly (not via Hook) SDSCM00021273 BIOS 6 legacy function TSK_isTSK() returns true if called from within main() SDSCM00021280 BCACHE_getSize() doesn't set the cache values in the structure it returns SDSCM00021600 Mailbox_destruct fails to tear down a statically allocated instance SDSCM00021701 Deleting a task in Task_Mode_READY state doesn't remove it from the ready list SDSCM00021748
remove SWI_getattrs, SWI_setattrs, SWI_orhook, SWI-getpri from
BIOS6 legacy deprecated list SDSCM00021887 Cache should be enabled by default for C67P SDSCM00021938 HeapBuf and HeapMultiBuf should use Assert instead of Errors for coding errors SDSCM00022326 HeapBuf create should not assign align to getMaxDefaultTypeAlign if not zero SDSCM00022437 Timestamp_get64() for 64x+ family should disable interrupts around TSCL/H register read SDSCM00022440 C67P Timer module should re-enable timer interrupt before calling tick fxn.
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 Appendix A: Converting DSP/BIOS 5.x
Applications in the DSP/BIOS User’s
Guide. Also see the Migrating a DSP/BIOS 5 Application to DSP/BIOS 6 document.
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 Appendix A referenced
above.
The following issues are known to affect this release:
SDSCM00018930
-- BIOS 6.x UG needs section describing Load module. The
DSP/BIOS User's Guide needs to describe the Load module. Check
the
on-line 'cdoc' documentation for information about the Load module.
SDSCM00021854
-- BIOS needs to support ARM9's MMU. DSP/BIOS should provide MMU
APIs in the ti.sysbios.hal package and ti.sysbios.family.arm9.*
packages to allow easy management of the MMU. Currently, the
application has to do this themselves. On some parts, the MMU
must be enabled to use the cache.
SDSCM00022297
-- ARM9 Cache writeback, invalidate and wbinv APIs are not reliable --
can cause system hang. The ARM9 Cache APIs are not working
correctly. We recomment not using these APIs until the issue is
resolved.
SDSCM00022406
-- Semaphore_pend(), Event_pend(), and Task_sleep() have large
latencies when timeout specified. Semaphore_pend(), Event_pend(),
and Task_sleep() disable interrupts for
a long time when the specified timeout is not 0 or forever. The
pending task is inserted into a timer queue with interrupts
disabled.
The length of time interrupts are disabled is a function of the timeout
value and the number of objects on the one-shot timeout queue.
SDSCM00022456
-- Add section in GSG about BIOS 6.x selection in Component Manager.
The DSP/BIOS Getting Started Guide does not mention the need to
use the
CCS 3.x component manager to select DSP/BIOS 6.x. The component
manager must be set to BIOS 6.x for correct CCS .pjt build operation.
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.