This release note is divided into the following sections:
Introduction,
Documentation,
What's New,
Upgrading And
Compatibility Information,
Host Support,
Dependencies,
Device Support,
Validation Information,
Known Issues,
Benchmarks,
Versioning,
Technical Support
And Product Updates,
SYS/BIOS 6.35.00.20 is a GA release of SYS/BIOS
6.35.00.
SYS/BIOS is a real-time operating system that provides
pre-emptive deterministic multithreading.
The SYS/BIOS releases introduce a completely new SYS/BIOS kernel
and toolset. The SYS/BIOS 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 SYS/BIOS 6.35.00.20.
back to top
The following documentation is provided with this release. These
documents are also available via teh CCS Eclipse help table of
contents.
License and manifest.
Additional online sources of documentation.
Release
notes from previous releases are also available in the
release notes archive
directory.
back to top
SYS/BIOS
6.35.00.20 GA
Release (this release).
- Prebuild libraries are built w/o debug symbols to make the installation smaller.
- The
BIOS.libType "LibType_Debug" configuration behavior has
changed. This option now builds a debug version of the code
as part of building the user's application. See the SYS/BIOS
User's Guide for more information.
- The
Cortex-A15 gcc libararies are now built to support hard-floating point
(-mfloat-abi=hard). The target name is
'gnu.targets.arm.A15F'. The soft-floating point library
(gnu.targets.arm.A15) is no longer provided.
- Cortex-A8 gcc libraries (gnu.targets.arm.A8F) with hard-floating point (-mfloat-abi=hard) are now supported.
- MSP430/COFF support has been removed. All MSP430 users must move to the ELF object file format.
- The
Stellaris Cortex-M4 Clock module now supports "Clock.TickMode_DYNAMIC"
which allows unnecessary timer ticks to be suppressed to save power.
- Updated the C28x codegen to 6.1.0.
Defects Fixed in
SYS/BIOS
6.35.00.20 GA (Fixes since SYS/BIOS 6.34.01.14):
ID
Headline
SDOCM00098990 BIOS should generate its own _malloc_r, _free_r, ... for targets that use gcc CG Tools
SDOCM00098960 add Resource Explorer description to the getting started guide
SDOCM00098881 Remove stairstep example from SYS/BIOS 6.35.00 release
SDOCM00098880 deprecate ti.sysbios.rta.Agent and update the docs and xgconf UI to recommend use of UIA
SDOCM00098846 Load module task delete hook using incorrect Heap handle to free allocated memory
SDOCM00098740 BIOS 6: A8F/A15F interrupt dispatcher does not preserve some critical floating point registers
SDOCM00098704 BIOS 6: C6x Exception handler corrupts ISR stack
SDOCM00098585 BIOS 6: Update user manual to describe new build behavior when BIOS.libType = BIOS.LibType_Debug
SDOCM00098547 Update CG Tools for C28x to v6.1.0
SDOCM00098530 Clock_startI() can set an incorrect timeout for TickMode_DYNAMIC
SDOCM00098503 BIOS 6.35 Release New Benchmarks
SDOCM00098502 Use Hwi_getStackInfo() for stack checking and getting stack base/size in hal/Hwi_stack.c
SDOCM00098474 BIOS.includeXdcRuntime = true does not include Core-smem.c in custom build flow.
SDOCM00098398 GIO.xs should use "$externPtr(fxns)" instead of "&" + fxns"
SDOCM00098361 ship "release" version of the pre-built libraries with minimal symbols
SDOCM00098360 use GA 1.0.0 for ARP32
SDOCM00098118 BIOS.includeXdcRuntime = true tries to build 'xdc/runtime/Types.c' which doesn't exist
SDOCM00097915 add gcc/Linaro A8F and A15F target support to SYS/BIOS
SDOCM00097914 udpate Examples.xs to use short 'name' for assorted BIOS examples
SDOCM00097895 BIOS 6: Clock module example should use 'Clock.doTick' rather than 'Clock.tick'
SDOCM00097874 BIOS 6: BIOS module ROV view is broken for platforms with no memory defined at location 0.
SDOCM00097833
update BIOS User's Guide Appx D (footprint) to use BIOS.assertsEnabled
and BIOS.logsEnabled (instead of Defaults)
SDOCM00097826 Add platform file and support for BeagleBone AM335x
SDOCM00097825 Add platform file and support for AM3358 Starter Kit
SDOCM00097742
BIOS 6: To support ROM-ability, replace all static functions and data
in SYS/BIOS modules with fully spec'd counterparts
SDOCM00097690 BIOS 6: A8 TimestampProvider_get64() is not thread safe
SDOCM00097633 Arp32 (Eve) Timer ROV view needs to be fixed
SDOCM00097570
BIOS 6: Add Assert that Task scheduler is unlocked to all blocking APIs
before they call Task_disable()
SDOCM00097569 BIOS
6: Enhance Swi_disable() and GateSwi_enter() CDOC to describe effects
of Task_disable() side effect.
SDOCM00097568 BIOS 6: reword Swi xgconf reference to "mask" to match "trigger"
SDOCM00097566
BIOS 6: Beef up the CDOC for Task_delete() to sensitize the user to the
need for care when using it.
SDOCM00097490 (Child) BIOS 6: Tesla AMMU ROV view shows bogus names for Large Page descriptors
SDOCM00097478
(Child) BIOS 6: Custom build flow doesn't support package.bld flow with
non-co-located source files.
SDOCM00097419 (Child) Add triggerSensitivity and targetProcList instance param to GIC Hwi
SDOCM00097416 (Child) BIOS c66 support needs to fix single mfence errata
SDOCM00097415 (Child) BIOS needs to support Secure Kernel for 6614
SDOCM00097327 (Child) BIOS 6: OMAP5430 C64T is not supported in 6.34.00
SDOCM00097319
(Child) BIOS 6: M3 Hwi_reconfig() writes to const array can result in
bus error if array is in flash.
SDOCM00097316 Add support of the MSP430 timer’s ID and IDEX dividers to enable longer timeouts
SDOCM00097281 BIOS 6: Clean up Clock module's "application never calls clock_tick" GUI option.
SDOCM00097254 (Child) BIOS.xs needs to be updated for correct timings on Concerto F28M36xx devices
SDOCM00097160 (Child) need to deliver ti.sysbios.fatfs.utils utilties for Windows as well as Linux
SDOCM00097154 (Child) BIOS 6: Using configuro build flow, ducati M3 applications fail to bring in _c_int00.
SDOCM00096983 BIOS 6: Do not export pre-built libraries' generated .c and .cfg files
SDOCM00096968 Need to address special case where heap butts up to 4GB address boundary
SDOCM00096955
BIOS 6: pre-built instrumented and nonInstrumented library build flows
have a flaw in their makefile dependencies
SDOCM00096911
(Child) do not open example .c files by default (update Example.xs
file) -- causes undesired focus change in TRex
SDOCM00096865
(Child) BIOS 6: Under certain code placement and unicache conditions,
GateDualCore_enter() will stall indefinitely.
SDOCM00096820 (Child) Add Generic Timer support for A15
SDOCM00096782 (Child) Add Long Descriptor format support to A15 MMU module
SDOCM00096771 add module-specific instance heap description to 6.7.4 of the SYS/BIOS User's Guide
SDOCM00096708 update Memory/malloc discussion in Appendix D (footprint) to use BIOS.heapSize
SDOCM00096559 remove ti.sysbios.genx package -- examples are now supported via TI Resource Explorer
SDOCM00096558 BIOS 6: Add Clock_isRunning() instance API to determine whether an object is currently active.
SDOCM00096515
(Child) BIOS 6 (M3 target): unresolved symbols when BIOS.taskEnabled =
false, or BIOS.swiEnabled = false
SDOCM00096422 HeapBuf_free needs to assert block being freed is within range
SDOCM00096191 remove MSP430/COFF support
SDOCM00095826 remove ti.sdo.io and ti.sdo.ipc test cases from regresstest
SDOCM00095573 Need to resolve remaining regresstest failures for IAR for MSP430
SDOCM00095551 remove a few remaining 'freezeRomConfig()' from a couple xs files
SDOCM00094716 Need a Swi_setFuncs API to allow args to be changed once the Swi is created
SDOCM00094583
BIOS 6: xgconf link to hal Cache delegate doesn't work if there is no
family specific Cache delegate
SDOCM00094213 BIOS 6: shouldn't allow Task.deleteTerminatedTasks == true and Task.enableIdleTask = false;
SDOCM00093052
BIOS 6: Bios_Legacy_App_Note needs to state that converted files are
NOT compatible with Grace GUI configuration
SDOCM00091088
BIOS UG needs to say that app C code needs #include
<xdc/cfg/global.h> to access symbols hanging from Program.global
obj
SDOCM00089988 Add Clock tick suppression for Stellaris devices
SDOCM00086832
Clock xgconf/grace page should disable or hide Timer Control when app
tick or no tick is selected
SDOCM00084332 (Child)
Make "LibType_Debug" build profile be similar to LibType_Custom but
with no optimizations. Stop exporting package lib
SDOCM00082438 C6x - Hwi.resetVectorAddress should also change the COFF/ELF entry point to this reset address
SDOCM00082034 BIOS 6: Add Swi readyQ ROV view similar to Task readyQ view
SDOCM00078998
add Swi_getParams()/setParams() (or some such) to cover use case for
BIOS 5.x's SWI_getattrs()/setattrs()
back to top
SYS/BIOS
releases have many significant changes from
DSP/BIOS 5.x. It is important to understand the information
below in order to
successfully use SYS/BIOS and to migrate applications from DSP/BIOS
5.x.
SYS/BIOS
software downloads
SYS/BIOS 6.34
- Binary
Compatibility. A few fields have been added to several data
structures which means that SYS/BIOS 6.34 is not binary compatible
SYS/BIOS 6.33. The safest thing to do is to rebuild all source
code against the .h files provided with SYS/BIOS 6.34. Note that only
the following externally visible structures have changed:
Task_Params, Task_Struct, HeapMem_Params. If your source
code does not use these structures directly, then you may not need to
recompile. Be careful when using other libraries from other
sources (like the NDK stack or other libraries provided with an
SDK or otherwise). These libraries should also be recompiled
against SYS/BIOS 6.34.
- MSP430
Clock. The Clock module for the MSP430 now uses the periodic
timer mode (TickMode_PERIODIC) by default. SYS/BIOS 6.33
used TickMode_DYNAMIC. You can change this default using
the ‘Clock.tickMode’ configuration parameter in your .cfg file.
TickMode_DYNAMIC minimizes the need for periodic interrupts, but adds
some constraints on the application. See
https://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_MSP430#Clock_Tick_Suppression
for more information about MSP430 clock modes.
- This release requires XDC 3.24.01 or later.
- This
release requires Arm codegen 5.0.1 or later. 5.0.1 will be
provided with CCSv5.3 and is available separately for use in CCSv5.2.
SYS/BIOS 6.33
- The
default directory for SYS/BIOS is changing to match CCSv5.1.0, "C:\ti"
is the new default directory (SDOCM00086138 -- BIOS installer needs to
change its default directory to match CCSv5.1.0)
- RTDX
has been removed and is no longer supported.
Only stop mode is supported for Realtime Analysis (RTA).
SYS/BIOS 6.32
- For
TI816X devices (ie Netra), GPTimers 3 and 7 have been removed from the
list of usable timers due to anomalous behavior when clocked at 32KHz
resulting in two interrupts for every period when run in continuous
mode.
- We
are planning to remove support for the whole_program and
whole_program_debug profiles because of build time problems and
compatibility problems when using different compiler
versions. SYS/BIOS 6.32 will output a warning
message when
the whole_program or whole_program_debug profiles are
used.
We are now providing pre-built libraries which can be selected via the
BIOS.libType configuration parameter (see section 7.6.1 of the BIOS
User's Guide for details). The instrumented
library contains Assert() and Log statements. The
non-instrumented library does not. The custom
library can
be used to build a custom BIOS library which will be built using
#define constants reflecting some of the key configuration parameters
from your application .cfg file. The
non-instrumented
library and custom library should give you similar or better
performance
to SYS/BIOS 6.31 using the whole_program profile.
- .taskStackSection
has been renamed – The .taskStackSection linker section has been
renamed to be a subsection of .far, .bss, or .ebss as appropriate for
the given target. This allows BIOS to be used with
CCS-supplied
linker .cmd files for the MSP430, Stellaris and 28x devices.
This
section is used to place the stacks for tasks created at configuration
time. The new name is provided in the
Task.defaultStackSection field in your configuration. If you
reference ‘.taskStackSection’ in your .cfg file, you should change the
code to use Task.defaultStackSection.
SYS/BIOS 6.31
- Added
an assert to GateMutex. GateMutex_enter() calls
BIOS_getThreadType() to validate the calling context.
GateMutex_enter() will raise an assert if called from Hwi or Swi
context. GateMutex internally calls
Semaphore_pend/post to
provide the mutex. Semaphore_pend() cannot be called from Swi
or
Hwi context if the semaphore is not available. Note that a
GateMutex gate is registered with the TI compiler’s RTS library to make
the RTS library reentrant. Calling printf() and a
few other
RTS functions from Swi or Hwi context will yield this
assert.
- This
assert check will catch bad code
that could cause a rare crash. While not recommended, this
assert
can be disabled by adding ‘GateMutex.common$.diags_ASSERT =
Diags.ALWAYS_OFF;’ to your .cfg file.
- Text
footprint on the C6x
increased by 2K due to Exception.enablePrint default now being set to
‘true’ by default. This enables better diagnostic output when
an
exception occurs. You can set this config parameter to
‘false’ to
save memory and get a shorter, less informative diagnostic string.
- MMU
and Cache are now enabled by default for Arm9.
- Arm9
applications will have larger data/text footprint
due to the 16kbyte MMU table and MMU initialization code.
- Moved
ti.sysbios.arm.Cache module to ti.sysbios.arm.arm9.Cache since this
module is Arm9-specific. .cfg scripts will have to be updated
to
use new name (‘ti.sysbios.family.arm.arm9.Cache’) and .c files will
have to change to use ‘#include
<ti/sysbios/arm/arm9/Cache.h>’.
- Use
BIOS_exit() rather than System_exit() if called from ISR or Swi context
to avoid Assert() in GateMutex module. BIOS_exit()
and
System_exit() both flush the SysMin trace buffer using CIO.
The
CIO library is protected by GateMutex.
DA830
ROM
- BIOS
6.30 and 6.31 cannot be used with the
DA830 ROM. BIOS 6.21 is the preferred version for DA830 ROM.
The
'ti.sdo.io' and 'ti.sdo.utils' packages are no longer provided with
SYS/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.
The
ti.sysbios.ipc package and its modules have been deprecated
- The
Semaphore, Event, and Mailbox modules were moved from the
ti.sysbios.ipc package into the ti.sysbios.knl package. Please update
your applications to use the ti.sysbios.knl package versions of the
Semaphore, Event, and Mailbox modules. Using the ipc package versions
of these modules will result in build warnings. In a subsequent release
of BIOS, using any module within the ipc package will result in a build
error.
The
ti.sysbios.family.arm.m3.Exception module has been deprecated
- The
ti.sysbios.family.arm.m3.Exception module functionality has been
enhanced and merged into the ti.sysbios.family.arm.m3.Hwi module.
Please update your applications to use the ti.sysbios.family.arm.m3.Hwi
module to configure exception handling. By default, exceptions will be
reported to CIO with an Error message. Details of the exception can be
seen using Hwi module's "Exception" ROV view. At the expense of
additonal code size, some of this detailed information can ALSO be
routed to the CIO console by setting the Hwi.enableException
configuration flag to true.
Placing of sections using
MEM configs is no longer supported (ie MEM.TEXTSEG is unsupported)
- All
of the legacy MEM memory segment placment functionality has been
removed. Legacy BIOS users must use Program.sectMap to place memory
sections.
The
ti.sysbios.family.c64p.Cache.initSize configuration item is no longer
supported
- The
ti.sysbios.family.c64p.Cache module no longer supports setting the
Cache sizes. These settings are now managed within a platform and can
be configured using the platform wizard.
SYS/BIOS no
longer
contains all the tools and objects you will need
- The
XDC tools now provide the
SYS/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 SYS/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 SYS/BIOS
- SYS/BIOS 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 SYS/BIOS. 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 SYS/BIOS.
- 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.
back to top
- Supported
Operating Systems
- Windows
7, Windows XP, Windows Vista
- Linux
[RH4], Ubuntu [10.04]
back to top
- Required Software
- Code Composer Studio v5.3.x or later
- Code Generation Tools
- C28X
version 6.1.0 or later
- C6X version 7.3.1 or later
- ARM version 4.9.1 or later, M3/M4 version 5.0.1 or later
- MSP430 version 4.1.0 or later
- XDCtools 3.24.06.63 or later
- Required Hardware
- See Device Support Section below.
back to top
Click here
for the list of supported devices.
back to top
Click
here
for the list of compilers used to build and validate this release
(scroll down to Supported Targets section).
back to top
The
following issues are known to affect this release:
- If
this version of SYS/BIOS is installed on the same system
as SYS/BIOS 6.31.00.xx or older, and use the same
version of
CCS, the user may see two "SYS/BIOS" folders in the examples when
creating a new project. The Eclipse plugins were
updated to
fix this in SYS/BIOS 6.31.01.19 and later. To work around
this
issue remove all versions of SYS/BIOS older than 6.31.01.19.
ID
Headline
SDOCM00082528 Linker command file
inserted regardless of platform selected for C28 examples
SDOCM00074130 ROV should reference kernel
object names versus object addresses
SDOCM00068360 No data displayed in RTA
Exec Graph when attaching to running target
back to top
For a full description of Benchmarks please see the
appendices in the SYS/BIOS
6 User's
Guide.
back to top
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.30.00.00-eng or
6.30.00.10-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_30_00_00).
Subsequent
releases of patch upgrades will be identified by the patch number, ex.
SYS/BIOS 6.30.01.15 with directory bios_6_30_01_15. 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.
back to top
Technical
Support and Product Updates
back to top
Last
updated: February 11, 2013 Build Ver: 6.35.00.20 Rev: k20