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.
How is SYS/BIOS related to XDCtools and RTSC?
SYS/BIOS uses underlying technology provided by Real Time Software Components (RTSC).
- RTSC is an open-source specification within the Eclipse.org ecosystem for providing reusable software components (called "packages") for use in embedded systems.
- XDCtools is the actual product that contains all the tools necessary for you to use the SYS/BIOS components and configure your application. XDCtools is installed as part of Code Composer Studio (CCS).
RTSC and XDCtools are important to SYS/BIOS users because:
- SYS/BIOS is delivered as a set of RTSC packages containing the modules that make up the RTOS.
- XDCtools provides configuration tools you use to create and build a static configuration as part of your application. This *.cfg configuration file specifies:
- Which modules from XDCtools, SYS/BIOS, and other components to include in the run-time image.
- What static instances of RTOS objects to create. For example, these include tasks and semaphores.
- Settings for parameter values for modules and objects.
- XDCtools provides critical APIs that are used by SYS/BIOS and other related software components. These include memory allocation, logging, and system control.
The RTSC-pedia web site describes RTSC and XDCtools in more detail. In particular, it provides information for developers planning to create RTSC packages. It is also useful if you plan to edit configuration scripts with a text editor rather than using the XGCONF graphical editor provided withing CCS.
SYS/BIOS as a set of RTSC packages
SYS/BIOS packages conform to this convention with names that consist of a hierarchical naming pattern; each level is separated by a period ("."). Usually, the highest level of the name is the vendor ("ti"), followed by the product ("sysbios"), and then followed by the module and submodule names (for example, "knl" and "Clock"). So, the full name to reference the Clock module is ti.sysbios.knl.Clock.
These names have the added benefit of reflecting the physical layout of the package within the file system where SYS/BIOS has been installed. For example, the ti.sysbios.knl package files can be found at
Configuring SYS/BIOS using RTSC
- It specifies which modules will be used.
- It can create objects statically.
- It performs integrity checks between packages to make sure they are compatible for integration.
- It sets configuration parameters for modules and objects to change their default behavior.
An application's configuration is stored in one or more script (.cfg) files. These are parsed by a command-line tool provided by XDCtools. The output from the command line tool includes C source, C header, compiler option, and linker command files that will be compiled and linked into the end application. When you build a CCS project, this configuration build step occurs before the normal compiler and linker steps. The following diagram depicts a build flow for a typical SYS/BIOS application.
In CCS, you can control how the .cfg file is processed in the Build Properties dialog for the project. Choose the following categories in the Properties dialog to access RTSC/XDCtools options:
- RTSC Package Path and Target Settings: Select the CCS Build (CCSv4) or CCS General (CCSv5) category and then choose the RTSC tab. See Setting RTSC Build Properties in CCS.
- XDCtools Command-Line Settings: Select the C/C++ Build > XDCtools (CCSv4) or CCS Build > XDCtools (CCSv5) category. See the xs and configuro command-line help.
Commonly-used RTSC modules
The XDCtools run-time package (xdc.runtime) contains a number of different modules that provide basic system services. Your SYS/BIOS application can make use of these. By default, all SYS/BIOS applications automatically add the xdc.runtime package during build time.
The functionality provided by the xdc.runtime package can be roughly partitioned into the following four categories. The Modules column lists modules that may be useful in many SYS/BIOS applications.
|System Services||System||Basic low-level "system" services. For example, character output, printf-like output, and exit handling.|
|Startup||Allows functions defined by different modules to be run before main().|
|Memory Management||Memory||Creates/frees memory heaps statically or dynamically.|
|Diagnostics||Log||Allows events to be logged and then passes those events to a Log handler.|
|Assert||Provides for configurable assertion diagnostics.|
|Error||Allows raising, checking, and handling errors defined by any modules.|
|Timestamp||Provides time-stamping APIs that forward calls to a platformspecific time stamper (or one provided by CCS).|
|Diags||Allows diagnostics to be enabled/disabled at either configuration- or run-time on a per-module basis.|
|Concurrency Support||Gate||Protects against concurrent access to critical data structures.|