Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

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.

    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.