FAQ-080713-5

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version]  [offline version]offline version generated on 14-Dec-2019 22:12 UTC

FAQ-080713-5

What's the relationship between RTSC and the XDCtools product

Think of RTSC as an ever-expanding "space" populated with target-content—managed packages of spec'd modules—supported with host-based tooling used throughout the software life-cycle. Taking this perspective, the XDCtools product lies at RTSC's point-of-origin, providing the necessary foundational elements for others to fill the RTSC space with target-content as well as additional tooling.

image:RhetoricalRTSC-Fig4.png

Language support.  Virtually everything in XDCtools—and by extension, RTSC—starts with the XDCspec language. The XDCtools product itself includes an XDCspec translator used to first parse source files and then (among other things) to generate corresponding C headers as well as documentation for the client programmer.

XDCtools likewise delivers the XDCscript meta-language, integrated more closely with XDCspec through an extended version of Rhino/JavaScript also shipped with the product; besides relying heavily on XDCscript to support the build/release/deploy cycle of RTSC packages as well as the configure/execute/analyze cycle of RTSC programs, XDCtools encourages use of the XDCscript meta-language as a general-purpose scripting engine that leverages the power and familiarity of JavaScript.

As for C itself, the XDCtools product does not necessarily bundle any particular compiler tool-chain(s); indeed, the XDCtools can interoperate with any ANSI C compiler. At the same time, the product does include knowledge of literally dozens of different C compilers from multiple vendors—so-called RTSC targets, which are actually spec'd XDCspec metaonly modules coupled with a XDCscript implementation which (with only modest effort) anyone could develop and deliver in their own package.

Core packages.  Moving up a level in the figure, the bulk of XDCtools comprises over a hundred packages containing even more modules/interfaces that broadly fall into three major groups:

  • packages with metaonly modules/interfaces that themselves support the general build/release/deploy life-cycle of other RTSC packages; just as many contemporary programming environments bootstrap themselves (e.g., all of Java is Java classes), RTSC packages are ultimately managed through other well-known RTSC packages that lie at the core of XDCtools.

  • packages with metaonly modules/interfaces that support the general configure/execute/analyze life-cycle of RTSC programs; here again, XDCtools builds upon itself through special XDCscript meta-content that in turn drives the design-time synthesis and run-time analysis of target-content elements in executable programs.

  • packages with target modules/interfaces that provide a first layer of run-time support for C programs containing other RTSC modules; portable across all targets, these modules augment the standard C runtime library with better embedded support for pluggable memory allocators, event logging and error handling, entry/exit of critical sections, as well as overall program startup/shutdown.

The latter content—shipped with the XDCtools product in C source-code form, to support migration to new RTSC targets—has its origins in some of the more rudimentary elements of TI's DSP/BIOS kernel. Separating out this functionality from the kernel enables RTSC to serve a much broader class of embedded system environments. By making the XDCtools product openly and freely available (not unlike Sun's Java Runtime Environment or Microsoft's .NET Framework), we anticipate an ever-growing inventory of inter-operable third-party target content populating the world of RTSC.

TI's new System/BIOS 6.00—itself a collection of RTSC modules/interfaces delivered as RTSC packages—will simply presume the presence of the XDCtools run-time. Information about its popular predecessor—DSP/BIOS, one of the industry's most widely deployed embedded kernels—can be found here.

Essential utilities.  Finally, the XDCtools product incorporates a number of basic utilities for:

  • building and releasing packages
  • invoking other tools implemented in XDCscript
  • generating documentation from specs
  • managing package repositories
  • and so forth, as an exercise for the toolsmith

These utilities can be used directly from the command-line or else invoked through extension points within your own development environment. In some instances, we'll also include a corresponding GUI tool—delivered as a package (of course) containing metaonly modules implemented in XDCscript in concert with the Java-based (and JavaScript-friendly) Eclipse/SWT graphical environment. In other situations, we'll leave the provision of higher-level GUI tooling to others.

Here again, we see broad availability of the XDCtools as a catalyst for others contributing compatible yet complimentary tooling—not only for general-purpose use, but also to address the needs of more specialized vertical markets through integrated solutions that synergistically couple tooling and content.

[printable version]  [offline version]offline version generated on 14-Dec-2019 22:12 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Personal tools
package reference