eXpress DSP Components (XDC) is a standard for reusable software
components, optimized for real-time embedded systems. XDC components
have hardware-neutral formal interfaces, are configurable offline to
optimize memory and performance, and support custom automation in the
development environment via a scripting language.
XDC 2.94 is a minor release.
This XDC release includes the following sets of packages:
XDC core (xdc.*) - the xdc and
xs command line utilities for building packages
and execting scripts, together with the packages that implement
XDC itself;
User tools (xdc.tools.*) - command-line
and graphical utilities for working with packages and repositories;
Targets (*.targets.*) - definitions for using
various TI and third-party compiler tool chains with XDC;
Platforms (ti.platforms.*) - definitions for
linking and running code on various TI board-level hardware and
simulator products using XDC.
Enable XDC in CCS Component Manager before opening XDC-enabled CCS projects
This release of XDC includes integration into Code Composer Studio v3.3 on
Windows, via an XDC tab in the CCS project build settings. The CCS Component
Manager must be used to enable this tab after installing XDC, before opening
any XDC-enabled CCS projects.
Failing to enable XDC in Component Manager will cause CCS to
delete XDC build settings from XDC-enabled .pjt files.
This issue primarily affects example CCS .pjt files delivered with XDC and
dependent products.
To enable XDC in CCS Component Manager:
Launch Code Composer Studio v3.3
Select "About.." item from CCS "Help" menu
Click "Component Manager" button in About dialog
Expand "Target Content (XDC)" tree item
Expand "TMS320C62XX" tree item
Enable check box beside "XDC <2.94>" item
Repeat steps 4-6 for C64, C67, and TMS470R1, R2 and R3 items
Close Component Manager
Click "OK" button in About dialog
Close CCS
The XDC build settings tab will be available in CCS when it is next launched.
The following significant changes have been made since 2.93
Compatible changes to XDC module binary contract implementation
New graphical repository management tool, xdc.tools.repoman.sg
Improved tracking of package dependencies for library ordering
Improvements to Log and Timestamp modules in XDC runtime
2.94 (This Release)
XDC Module Binary Contract
internal changes to the C language binding to both speed up
compilation of the generated package/cfg/*.c file as well to
reduce code size. no impact on the programming model
move the generated .h file for proxies into the package/
directory, both to remove the clutter from the top-level
directory as well as to emphasize that these .h files are
*not* to be #include'd by clients; these .h files are
automatically included by the module that spec'd the proxy.
deprecated use of xdc/program.h in favor of new xdc/cfg/global.h
XDC Runtime
add xdc.runtimeTimestampNull, an "empty" timestamp provider
that returns 0 for all results. this provider is also the new
default bound to xdc.runtime.Timestamp.SupportProxy
refactored the Log module into three distinct modules: Diags,
which manages the trio of per-module masks with bits
corresponding to ENTRY, ASSERT, etc; Assert, which breaks out
the "assert" capability as well as defines an Assert.Id type
for declaring messages not unlike Error.Id; and Log, which
continues to provide a write/print set of functions. Both
Assert and Log internally use Diags (specifically, Diags_query)
for run-time control; Assert continues to use Error when
run-time assertion tests fail.
as part of the Log refactoring, the boolean returned by
Diags_query() no longer considers whether common$.logger is
non-null for the current module; actual calls to Log_write
and Log_print continue to test for a non-null logger as well
as call Diags_query() in their implementation. this implies
that Assert can be "active" in a module for which no logger has
been defined
removed System_clock() and updated all examples. this
functionality is now provided by either calling the C clock()
fxn directly (examples only) or else by using
xdc.runtime.Timestamp
renamed xdc.runtime.ITimestampSupport to ITimestampProvider,
consistent with other naming conventions
renamed xdc.runtime.TimestampSys to xdc.runtimeTimestampStd,
and changed the implementation to no longer call System_clock()
but rather to call clock() directly
renamed the few remaining module-wide configs in the
xdc.runtime package with ALLCAPS names to use camelCase
instead, consistent with prevailing conventions in this and
other packages. impacted modules include Log and Text.
added a proxy to LoggerSys of type ITimestampProvider, with a
default binding to xdc.runtime.TimestampNull, which is used
internally to retrieve timestamps; this features enables
LoggerSys to use a different provider than the global
xdc.runtime.Timestamp module.
changed the default value of common$.logger to 'null'; this
param must now be explicitly assigned a value of type
xdc.runtime.ILogger.Handle. updated basic/examples/logging
accordingly.
fixed xdc.runtime.SysMin.c to avoid infinite loops in the
event that HOSTwrite() returns a failure code
Platforms
Added DM6441 (DaVinci) catalog files
Removed IMCOP and VICP memories from DM420, DM6446, DM6467 and
any other devices that inherit from them
implemented IPlatform.renameMap parameter that allows changing
only the names of memory objects (SDSCM00013507)
added TMS320CDM6467 to ti.catalog.c470
fixed the bug in evmDM6437; SRAM was named DDR2
the device for evmDM6467 is now c470/TMS320CDM6467
fixed the bug in evm6424; SRAM was named DDR2
added DM647/DM648 (Kailash) datasheet
added renameMap parameter and used Utils.assembleMemoryMap()
call that generates a map using renameMap, memory coming from
the device, the board memory and customMemoryMap
evmDM648 clock set to 726 MHz
updated DM6443 and DM6446 (DaVinci) datasheets
Configuro Build Tool
Fixed a bug in xdc.tools.configuro in supporting mixed
XDC / BIOS 5.X tconf use case. Forced
"config.programName" to be an absolute pathname, so that
the tconf-generated linker script gets included correctly.
Also added "ti.bios" package as a requirement to the
configuro-generated package.xdc in this use case.
added support for C62, C67, and TMS470R1, R2 and R3 to XDC
configuro biuld in CCS.
Repoman Repository Management Tool
Added xdc.tools.repoman.sg tool for managing XDC repositories.
Repoman allows XDC users to easily add packages to their repositories,
from other repositories or from archive files, and graphically
flags package compatibility issues between packages on the package path.
It is a graphical front end for the xdc.tools.repoman command-line
tool.
Added support for bundles and tar.gz files
Added '-C' option to copy package
Added repository-based packages branch to Packages
view. Can now drag n drop (copy) un-archived packages
to a repository in Package path view
Only allow repositories created with repoman to be
modified
Xdoc / Cdoc Package Documentation Tool
Extended {@link} tag to allow http: hyperlinks,
and links to files in packages. The link target for files
in packages are specified the same way as for xdc.findFile().
Made the "doc-files" directory name in a package special.
If this directory exists, its entire contents are copied
into generated cdoc output tree.
Expanded XDOC markup language examples in the
xdc.tools.xdoc.Markup module.
Path Tool
Fixed xdcpkg bug when invoking on Linux
XDC Script
Added persistent spec name to extern functions and pointers if
the value is derived from a spec'd object.
Added xdc.cfg.jserver.XVal.Extern to handle extern types.
ROM Support
internal changes in the generated package/cfg/*.c file to
reduce code size in the ROM flow
changed the binding of proxies in the ROM flow to occur
immediately within the ROM assembly; this implies that delegate
bound to the proxy must itself be in the ROM (since no
undefined function references are permitted). the net effect
is that proxy calls in client modules in the ROM will pass
directly to the delegate function, which is also in the ROM.
(note that latter, like all ROM'd functions, goes through a
RAM-based jump-table -- which also may be selectively removed
in the future)
XDC Build
changed ITargetFilter interface to pass all link (archive)
arguments passed to the ITarget link (archive) method to the
filter method.
updated all examples and the tisb.coverity.filters to
implement the new ITargetFilter interface
fixed TCF module to allow arbitrarily long XDCPATH settings
and to check library path lengths before writing to arrays
XGCONF Graphical Configuration
fixed XVal.Extern spec name bugs in toNative()
Updated Properties View display filter to hide
Config params declared with @System.
Updated XGConfBasics.pdf with fresh screen-shots.
Fixed path separator in xdc.xgconf.getLibs and
xdc.xgconf.test.Main.
Implemented XVal.Extern usage. Added auto check
for IArg, UArg, and Any types such that an entry
beginning with a & is an extern pointer, an entry
that is a valid number is a number, else it is
a string. Added Icons to distinquish what the
current type is that is set.
RTSC Object Viewer
ROV can now fetch/decode arrays whose base-type is a scalar;
declaring a one-field struct-type for this purpose is no longer
needed. if the base-type is a handle (or any pointer-type),
only the raw address value is fetched.
Enhancements
The following minor enhancements were resolved:
ID
Headline
SDSCM00014894
cdoc should provide a clean way to embed http:// hyperlinks
Defects
The following defects were resolved:
fixed an internal bug that resulted in compile errors in the
generated package/cfg/*.c file when using named instances
Improved ordering of libraries in generated linker command file.
Improved tracking of references to other packages in
scripts, and and sorted packages based on this dependency
graph.
fixed the bug in the dependency graph; in the case of packages
not being found, they were still left in the dependency graph,
so if the error thrown from xdc.loadPackage() was caught and
the configuration continues, an error would occur
ID
Headline
SDSCM00013507
Plaform files need to be more configurable
SDSCM00013935
XDOC support for nbsp
SDSCM00013937
XDOC and CDOC do not generate info about proxys
SDSCM00014151
xdoc links should follow package scope rules
SDSCM00015135
cdoc generates duplicate config params docs
SDSCM00015257
"Go forward" and "Go back" arrows in CDOC are non-functional
SDSCM00015455
cdoc sometimes removes '+' sign from strings
SDSCM00015960
API's Documentation missing in CDOC/XDOC for Queue module
SDSCM00016326
Clock_construct needs to take Error Block param as well
Mismatch in declaration of Semaphore_construct ( ) API in CDOC
SDSCM00017016
cdoc should provide a way to link to other documentation
SDSCM00016135
Order of libraries in generated .xdl may be incorrect
SDSCM00015135
c generates duplicate config params docs
SDSCM00015455
cdoc sometimes removes '+' sign from strings
SDSCM00015960
API's Documentation missing in CDOC/XDOC for Queue module
SDSCM00016326
Clock_construct needs to take Error Block param as well
SDSCM00016717
Mismatch in declaration of Semaphore_construct ( ) API in CDOC
SDSCM00016714
long paths break xs and tconf
SDSCM00016428
XDC build for Windows Host throws Link Error with lnkx86
SDSCM00016374
DM6441 and DM6443 devices missing from ti.catalog.c6000 package
SDSCM00016132
VICP/MEM base/length are incorrect in DM6446 catalog files
SDSCM00016293
evmDM6437 and evm6424 platform files have 2 sections named
"DDR2"
SDSCM00007214
Closed views generate errors on selection changes
SDSCM00012059
Corrupt scripts can hang the config jserver.
SDSCM00016110
Function pointers assigned to non meta only config objects
fail xdc build
2.93.02
Platforms
Bug fixes for some C64x device family platform files
Defects
The following defects were resolved:
ID
Headline
SDSCM00016293
evmDM6437 and evm6424 platform files have 2 sections named "DDR2"
2.93.01
Configuro Build
Fixed a bug in xdc.tools.configuro in supporting mixed
XDC / BIOS 5.X tconf use case. Forced
"config.programName" to be an absolute pathname, so that
the tconf-generated linker script gets included correctly.
Also added "ti.bios" package as a requirement to the
configuro-generated package.xdc in this use case.
ti.targets - This package is compatible with the
previous release. (Compatibility key: 1,0,0,0 -> 1,0,0,1)
gnu.targets - This package is compatible with the
previous release. (Compatibility key: 1,0,0,0 -> 1,0,0,1)
Warning: Beginning with xdc-o02, internal C files generated when
building package schemas are
named package_<package name>.c instead of <package_name>.c.
This may introduce incompatibilities with older xdc-n and xdc-o trees
(XDC 2.X products).
The compatibility with metaonly xdc-m packages (XDC 1.X products) is still maintained.
Compatibility Key Definitions
Compatibility keys are intentionally independent of Marketing product numbers
and are intended to:
Enable tooling to identify incompatibilities between components, and
Convey a level of compatibility between different releases to set end user
expectations.
Compatibility keys are composed of 3 comma-delimited numbers - M,S,R - where:
M = Major. A difference in M indicates a break in compatibility.
S = Source. A difference in S indicates source compability. That
is, the user's source doesn't require change, but does require
rebuilding.
R = Radix. A difference in R indicates an introduction of new
features, but compatibility with previous interfaces has not broken. If
libraries are provided by the package, an application must re-link with the
new libraries, but not rebuild from source.
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.
xdc_2_93.
Subsequent releases of patch upgrades will be identified by the patch number,
ex. XDC 2.93.03 with directory xdc_2_93_03. 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.