module ti.sysbios.rts.gnu.SemiHostSupport

This module does the required setup for supporting Semi-Hosted SYS/BIOS applications for all Cortex-A and Cortex-M GNU targets

For Cortex-A targets, this module generates a SVC_Handler() function and registers it as the default SWI/SVC handler. [ more ... ]
C synopsis target-domain sourced in ti/sysbios/rts/gnu/SemiHostSupport.xdc
DETAILS
For Cortex-A targets, this module generates a SVC_Handler() function and registers it as the default SWI/SVC handler.
This module also registers a startup last function (see Startup.lastFxns) that initializes the file handles for all Cortex-A and Cortex-M GNU targets.
Adding Semi-Hosting support to a SYS/BIOS application requires linking with a semi-hosting gnu library called "librdimon" and including this module in the config script.
Here's an example of including this module in the *.cfg file.
      var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
The following examples illustrate how to link with the Semi-Hosting library in the different build flows supported by SYS/BIOS:
- When using package.bld build flow, the following code needs to be added to the config.bld file:
      var gccArmTargets = xdc.loadPackage('gnu.targets.arm');

      // For Cortex-A8 target
      gccArmTargets.A8F.bspLib = "rdimon";

      // For Cortex-A9 target
      gccArmTargets.A9F.bspLib = "rdimon";

      // For Cortex-A15 target
      gccArmTargets.A15F.bspLib = "rdimon";

      // For Cortex-M3 target
      gccArmTargets.M3.bspLib = "rdimon";

      // For Cortex-M4 target
      gccArmTargets.M4.bspLib = "rdimon";

      // For Cortex-M4F target
      gccArmTargets.M4F.bspLib = "rdimon";
- When using configuro or building a CCS project, the user needs to add the following link options to link with the librdimon.a library.
      -Wl,--start-group -lrdimon -Wl,--end-group
NOTE
If the SemiHostSupport module is used without linking with the librdimon library, the application build will generate a linker error. The linker complaints about a missing "initialise_monitor_handles" symbol which is defined in librdimon library. Please do not include this module if you are not linking with librdimon library to avoid any linker errors.
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId SemiHostSupport_Module_id();
// Get this module's unique id
 
Bool SemiHostSupport_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle SemiHostSupport_Module_heap();
// The heap from which this module allocates memory
 
Bool SemiHostSupport_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 SemiHostSupport_Module_getMask();
// Returns the diagnostics mask for this module
 
Void SemiHostSupport_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
 
Configuration settings sourced in ti/sysbios/rts/gnu/SemiHostSupport.xdc
var SemiHostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
module-wide config parameters
 
 
metaonly config SemiHostSupport.common$  // module-wide

Common module configuration parameters

Configuration settings
SemiHostSupport.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
generated on Tue, 09 Oct 2018 20:57:38 GMT