NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Using XDCtools with BIOS 5
Introduction[edit]
XDCtools enables prebuilt libraries to be 'configured' via the xs command line tool without requiring the libraries themselves to be rebuilt. Codec Engine, BIOS 6, and other content leverages this tool. BIOS 5 also provides libraries that can be configured without being rebuilt, but BIOS 5 leverages an earlier command line configuration tool called tconf. Since both tconf and xs build atop the same underlying JavaScript engine and runtime libraries, it's possible to configure and use BIOS 5 libraries and new content (from ti.sdo.ce, xdc.runtime, ...) in the same application using just xs.
The ability to configure both BIOS 5 (via tconf .tcf scripts) and newer content (via xs .cfg scripts) for use within a single application is supported, but not well documented. This article explains some of the techniques and pitfalls related to systems that configure using both tconf .tcf and xs .cfg configuration scripts.
Note, currently, this article is intentionally thin and needs review (and better wordsmithing!) but provides an outline for further content.
Config Files[edit]
The root names of the XDC config file (*.cfg) and BIOS config file (*.tcf) must match. For example, foo.tcf must be paired with foo.cfg.
configuro[edit]
The configuro tool provides a flag, --tcf, to provide a BIOS 5 .tcf script. Usage needs explained here...
Using xdc
to build executables[edit]
By default, Pkg.addExecutable()
assumes the executable's runtime support is provided by XDC's xdc.runtime
. In BIOS 5 based systems, this is unnecessary and often inappropriate since BIOS 5 provides comparable runtime services (e.g. Memory management, Logging support, etc). When using the package.bld-based builds, and specifically Pkg.addExecutable()
, you should explicitly declare that the xdc.runtime
support libraries not be included in your executable's configuration. This is done by setting the executable's rtsName attribute to null
.
<syntaxhighlight lang='javascript'>
var exe = Pkg.addExecutable("hello", targ, targ.platform, { rtsName: null });
</syntaxhighlight>
Although, no error will result if you fail to do this, your executable will contain an unnecessary reference to a package that can trigger compatibility warnings in the event that the package containing this executable is used with other packages that require a different incompatible version of this library.