NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on The site is now set to read only.

Using XDCtools with BIOS 5

From Texas Instruments Wiki
Jump to: navigation, search


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

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.


The configuro tool provides a flag, --tcf, to provide a BIOS 5 .tcf script. Usage needs explained here...

Using xdc to build executables

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


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.